1.OkHttp概述
1.1什么是OkHttp?
OkHttp是一个网络客户端,客户端向服务器发出一条HTTP请求,服务器收到请求后返回数据给客户端,客户端对数据进行解析和处理。
1.2OkHttp的用法
(1)创建一个OkHttpClient对象
OkHttpClient client=new OkHttpClient();
(2)创建一个Request对象,代表要发送一条HTTP请求(再调用build()方法之前,可以调用其他方法来丰富request对象
Request request=new Request.Bulider().url("")
.build();
(3)调用OkHttpClient的newCall()方法创建一个Call对象,并使用execute()方法来发送请求并获取服务器返回的数据(其中Response对象就是服务器返回的数据)
Response response=client.newCall(request).execute;
2.OkHttp使用
2.1OkHttp-get-Request
当我们想要从服务器上获取资源时就用get()方法。
实现步骤:
(1)获取Request对象,并传入URL;
(2)呼叫服务器,获取Response响应对象(服务器返回的)
(3)通过response.body().string()获取返回的具体内容。
public void get() {
Request.Builder builder=new Request.Builder();
builder.url("https://github.com/square/okhttp/blob/master/README.md");
Request request=builder.build();
Call call=mClient.newCall(request);
Response response=call.execute();
if(response.isSuccessful()){
final String string=response.body().string();
runOnUiThread(new Runnable() {
@Override
public void run() {
mContent.setText(string);
}
});
2.2OkHttp-post
(1)与GET相比,发起POST请求需要构建RequestBody对象存放待提交的参数(各种方法构建)
RequestBody requestBody=newFormBody.Builder().add(“user”,“admin”).add(“password”,"123456).builder();
(2)然后在Request.Builder中调用post()方法,并将RequestBody对象传入
(3)调用execute()方法发送请求并获取服务器返回的数据。
private void post() {
Request.Builder builder = new Request.Builder();
builder.url(POST_URL);
builder.post(RequestBody.create(MEDIA_TYPE_MARKDOWN, "Hello world github/linguist#1 **cool**, and #1!"));
Request request = builder.build();
Call call = mClient.newCall(request);
Response response=call.execute();