java - 如何从 URL 中提取参数,无论其书写方式如何?

标签 java url http-post url-parameters query-string

我想要一种 java 方式来提取 URL 的参数,无论这些参数的写入方式如何,以常规方式(如( https://www.facebook.com/Doly.mohamed.Smile9?ref=stream&hc_location=stream ))它非常简单,因为我所要做的就是:

URL url = new URL("www.blabla....etc");

String query = url.getQuery();

try{
String [] params = query.split("&");

for(int i= 0 ; i < params.length; i++){
    String [] split = params[i].split("=");
    parameters.put(split[0], split[1]);
}
}catch(NullPointerException ex){}

所以参数值是:

key = ref  value = stream ,  key = hc_location value = stream

但是,如果 URL 包含以其他方式编写的参数,或者 URL 中没有写入参数,就像 doPost() 的情况一样,我该怎么办?方式。

有没有一种方法可以在不使用 servlet 的情况下从 URL 获取 extraPathInfo?

最佳答案

您可以使用 Apache 的 HTTP utils 轻松做到这一点。

URIBuilder uriBuilder = new URIBuilder(uriString);
List<NameValuePair> urlParameters = uriBuilder.getQueryParams();
String uriWithoutParameters = uriBuilder.clearParameters().toString();

例如,现在您可以使用 http utils API 中的其他类轻松将 GET 请求转换为 POST 请求。

关于java - 如何从 URL 中提取参数,无论其书写方式如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16708436/

相关文章:

http - 分号作为 URL 查询分隔符

http-post - Thinkster postman 教程帖子请求登录

java - 实现基类方法的java方法可以返回继承类吗?

java - Hibernate 中的 c3p0 中可能存在内存泄漏?

java - 通过 streamreader 读取多个 java 属性

java - log4j,国外日志记录

Java:尝试从服务器下载 jar 文件:线程 "main"java.io.IOException 中出现异常:服务器返回 HTTP 响应代码:URL 为 403

url - Arduino 以太网客户端仅使用 IP 地址无法工作

android - 如何使用 Retrofit 发送数组/列表

java - 在Java中验证Http请求的方法?