我在api调用中使用了org.apache.http库。但现在我将org.apache.http库更改为okhttp库。 org.apache.http库不支持更高版本的sdk。在org.apache.http库中,我使用httpdelete,httpclient,httpput来调用api。但是在okhttp中如何使用这些方法。
高级感谢和问候
答案 0 :(得分:3)
查看org.apache.http.client.methods.Http*
类的源代码,您将看到每个类只是getMethod()
函数的简单覆盖以及构造函数定义。
@Override
public String getMethod() {
return METHOD_NAME;
}
HttpClient为自己的内部API执行此操作并执行if (request instanceof HttpPut) { /* do the thing */ }
OkHttp使用Builder
类构造其类的实例。因此,要发出PUT
请求,请使用:
/* HttpClient */
HttpUriRequest request = new HttpPut(/* Target URL */);
/* OkHttp */
Request request = new Request.Builder()
.url(/* Target URL */)
.put(/* RequestBody instance (e.g. form content) */)
.headers(/* Headers object */)
.build());
Builder
类包含许多"方便"制作常见请求的方法。这些可以用来代替上面的put()
方法。
get(), head(), post(RequestBody body), delete(RequestBody body), delete(), put(RequestBody body), patch(RequestBody body)
或者,您可以使用method(String method, RequestBody body)
函数从String分配方法。
大多数(如果不是全部)OkHttp类都将使用Builders。所以你的代码不能直接翻译。