Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对请求的参数进行迭代_Java_Get_Okhttp - Fatal编程技术网

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”)