public class NetActions {
OkHttpClient client = new OkHttpClient();
public String getStudentById(String code) throws IOException, NullPointerException {
HttpUrl httpUrl = new HttpUrl.Builder()
.scheme("https")
.host("subdomain.apiweb.com")
.addPathSegment("api")
.addPathSegment("v1")
.addPathSegment("students")
.addPathSegment(code) // <- 8873 code passthru parameter on method
.addQueryParameter("auth_token", "71x23768234hgjwqguygqew")
// Each addPathSegment separated add a / symbol to the final url
// finally my Full URL is:
// https://subdomain.apiweb.com/api/v1/students/8873?auth_token=71x23768234hgjwqguygqew
.build();
System.out.println(httpUrl.toString());
Request requesthttp = new Request.Builder()
.addHeader("accept", "application/json")
.url(httpUrl) // <- Finally put httpUrl in here
.build();
Response response = client.newCall(requesthttp).execute();
return response.body().string();
}
}
正如在另一个答案中提到的,okhttp v2.4提供了新的功能,使之成为可能。 See http://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/HttpUrl.Builder.html#addQueryParameter-java.lang.String-java.lang.String- 当前版本的okhttp there is no method provided that will handle this for you无法实现这一点。 其次最好的方法是构建一个url字符串或URL对象(在java.net.URL中找到),其中包含您自己的查询,并将其传递给okhttp的请求构建器。
//adds the pre-encoded query parameter to this URL's query string
addEncodedQueryParameter(String encodedName, String encodedValue)
//encodes the query parameter using UTF-8 and adds it to this URL's query string
addQueryParameter(String name, String value)
7条答案
按热度按时间9avjhtql1#
对于okhttp3:
2mbi3lxu2#
这是我的拦截器
fcwjkofz3#
我终于完成了我的代码,希望下面的代码可以帮助大家。我首先使用
第一个月
然后将URL传递给
Request requesthttp
,希望它能有所帮助。juud5qan4#
正如在另一个答案中提到的,okhttp v2.4提供了新的功能,使之成为可能。
See http://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/HttpUrl.Builder.html#addQueryParameter-java.lang.String-java.lang.String-
当前版本的okhttp there is no method provided that will handle this for you无法实现这一点。
其次最好的方法是构建一个url字符串或
URL
对象(在java.net.URL
中找到),其中包含您自己的查询,并将其传递给okhttp的请求构建器。如您所见,Request.Builder可以接受String或URL。
有关如何构建url的示例可以在What is the idiomatic way to compose a URL or URI in Java?中找到
inkz8wg95#
到目前为止(okhttp2.4),HttpUrl.Builder现在有方法addQueryParameter和addEncodedQueryParameter。
fumotvh36#
您可以从现有的HttoUrl创建newBuilder并在其中添加查询参数。
0x6upsns7#
使用HttpUrl类的函数:
更详细:https://stackoverflow.com/a/32146909/5247331