首先添加OkHttp库的依赖:
git地址
implementation("com.squareup.okhttp3:okhttp:4.9.1")
下面看一下OKHttp的具体用法:
1.首先需要创建OKHttpClient的实例
OkHttpClient client = new OkHttpClient();
2.接着发送一条HTTP请求,就需要创建Request对象
Request request = new Request.Builder().build();
这是空的Request对象,并没有实际作用,我们可以在最终的build()方法之前连缀很多其他方法来丰富这个Request对象,比如可以通过url()方法来设置目标的网络地址:
Request request = Request.Builder()
.url("http://www.baidu.com")
.build();
3.之后调用OkHttp的newCall() 方法来创建一个Call对象,并调用它的execute() 方法来发送请求并获取服务器的数据:
Response response = client.newCall(request).execute();
4.获取返回的具体内容:
String responseData = response.body().string();
如果发起一条POST请求,需要先构建一个RequestBody对象来存放待提交的参数:
RequestBody requestBody = new FormBody.Builder()
.add("username", "admin")
.build();
然后在Request.Builder中调用一下post() 方法,并将RequestBody对象传入
Request request = new Request.Builder()
.url("http://www.baidu.com")
.post(requestBody)
.build();
简单示例:
public class OkHttpTest extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ok_http_test);
okHttpRequest();
}
private void okHttpRequest() {
new Thread(new Runnable() {
@Override
public void run() {
try {
OkHttpClient client = new OkHttpClient();
FormBody responseBody = new FormBody.Builder()//存放待提交的数据
.add("username", "admin")
.add("password", "12345")
.build();
Request request = new Request.Builder()//发送HTTP请求
.url("http://www.baidu.com")
.post(requestBody)
.build();
Response response = client.newCall(request).execute();//发送请求并获取服务器返回的数据
String responseData = response.body().string();//获取返回的具体内容
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}