Java 对请求的参数进行迭代
我有一个Java 对请求的参数进行迭代,java,get,okhttp,Java,Get,Okhttp,我有一个 Map<String,String> params = ..... 如何将params中的(事先未知和/或变量)参数添加到HttpUrl,即迭代params中的值,并为每个键+值调用addQueryParameter 编辑抱歉,我不够具体:我需要知道是否可以在循环中以某种方式重复调用.addQueryParameter(),而不是如何在映射上迭代 Map<String,String> params = new HashMap<>(); params
Map<String,String> params = .....
如何将params
中的(事先未知和/或变量)参数添加到HttpUrl,即迭代params
中的值,并为每个键+值调用addQueryParameter
编辑抱歉,我不够具体:我需要知道是否可以在循环中以某种方式重复调用.addQueryParameter()
,而不是如何在映射上迭代
Map<String,String> params = new HashMap<>();
params.put("p1","a");
params.put("p2","b");
params.put("p3","c");
它将返回“p1=a&p2=b&p3=c”。
您可以将其附加到url的底部
url = "https//example.com?" + paramString
它将返回“p1=a&p2=b&p3=c”。
您可以将其附加到url的底部
url = "https//example.com?" + paramString
如果要迭代参数映射,可以通过以下方式执行:
Map<String, String> params = .....
for (Map.Entry<String, String> entry : params.entrySet())
{
httpUrl.addQueryParameter(entry.getKey(),entry.getValue());
}
Map参数=。。。。。
对于(Map.Entry:params.entrySet())
{
httpUrl.addQueryParameter(entry.getKey(),entry.getValue());
}
如果要迭代参数映射,可以采用以下方法:
Map<String, String> params = .....
for (Map.Entry<String, String> entry : params.entrySet())
{
httpUrl.addQueryParameter(entry.getKey(),entry.getValue());
}
Map参数=。。。。。
对于(Map.Entry:params.entrySet())
{
httpUrl.addQueryParameter(entry.getKey(),entry.getValue());
}
有关示例,请参见
HttpUrl url = HttpUrl.parse("https://twitter.com/search?q=cute%20%23puppies&f=images");
for (int i = 0, size = url.querySize(); i < size; i++) {
System.out.println(url.queryParameterName(i) + ": " + url.queryParameterValue(i));
}
HttpUrl url=HttpUrl.parse(“https://twitter.com/search?q=cute%20%23puppies&f=images");
for(inti=0,size=url.querySize();i
有关示例,请参见
HttpUrl url = HttpUrl.parse("https://twitter.com/search?q=cute%20%23puppies&f=images");
for (int i = 0, size = url.querySize(); i < size; i++) {
System.out.println(url.queryParameterName(i) + ": " + url.queryParameterValue(i));
}
HttpUrl url=HttpUrl.parse(“https://twitter.com/search?q=cute%20%23puppies&f=images");
for(inti=0,size=url.querySize();i
要使其正常工作,必须从HttpUrl.builder开始:
HttpUrl.Builder httpUrlBuilder = new HttpUrl.Builder()
.scheme("https")
.host("example.com");
然后添加参数:
for (Map.Entry<String,String> entry: params.entrySet()) {
httpUrlBuilder.addQueryParameter(entry.getKey(), entry.getValue());
}
要使其正常工作,必须从HttpUrl.builder开始:
HttpUrl.Builder httpUrlBuilder = new HttpUrl.Builder()
.scheme("https")
.host("example.com");
然后添加参数:
for (Map.Entry<String,String> entry: params.entrySet()) {
httpUrlBuilder.addQueryParameter(entry.getKey(), entry.getValue());
}
非常有用,但我必须从参数到完整URL的另一种方式
OkHttpUrl.Builder
将允许您这样做。非常有用,但我必须从参数到完整URL的另一种方式OkHttpUrl.Builder
将允许您这样做。urlencoruetf8包含在java.net.URLEncoder中。另外,如果您在Eclipse中工作,可以键入Ctrl+Shift+o自动导入缺少的libraries.urlencreutf8包含在java.net.URLEncoder中。另外,如果您在Eclipse中工作,则可以键入Ctrl+Shift+o自动导入缺少的库。只有从HttpUrl.Builder HttpUrl=new HttpUrl.Builder().scheme(“https”).host(“example.com”)
只有从HttpUrl.Builder HttpUrl=new HttpUrl.Builder().scheme(“https”).host(“example.com”)代码>