1.导入依赖,添加网络权限
implementation 'com.squareup.okhttp3:okhttp:3.4.1'//okhttp依赖
<uses-permission android:name="android.permission.INTERNET"/>
2.上代码
package com.example.okhttp;
import androidx.appcompat.app.AppCompatActivity;
import android.app.DownloadManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "MainActivity";
private Button get_tong,get_yi,post_tong,post_yi;
OkHttpClient okHttpClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initvoid();
okHttpClient = new OkHttpClient();
}
private void initvoid(){
get_tong = findViewById(R.id.get_tong);
get_tong.setOnClickListener(this);
get_yi = findViewById(R.id.get_yi);
get_yi.setOnClickListener(this);
post_tong = findViewById(R.id.post_tong);
post_tong.setOnClickListener(this);
post_yi = findViewById(R.id.post_yi);
post_yi.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.get_tong:
getTong();
break;
case R.id.get_yi:
getYi();
break;
case R.id.post_tong:
postTong();
break;
case R.id.post_yi:
postYi();
break;
}
}
private void getTong() {
new Thread(new Runnable() {
@Override
public void run() {
Request request = new Request.Builder().url("https://www.httpbin.org/get?aaa=12").build();
//得到一个准备好的Call请求对象
Call call = okHttpClient.newCall(request);
//调用同步的方法
try {
Response execute = call.execute();//得到一个Response对象,数据都在这个里
Log.i(TAG, "getTong: "+execute.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
private void getYi() {
new Thread(new Runnable() {
@Override
public void run() {
Request request = new Request.Builder().url("https://www.httpbin.org/get?aaa=123").build();
//得到一个准备好的Call请求对象
Call call = okHttpClient.newCall(request);
//调用异步的方法
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i(TAG, "onFailure: "+e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.i(TAG, "getYi: "+response.body().string());
}
});
}
}).start();
}
private void postTong() {
new Thread(new Runnable() {
@Override
public void run() {
FormBody formBody = new FormBody.Builder().add("ss", "1").build();
Request request = new Request.Builder().url("https://www.httpbin.org/post")
.post(formBody)
.build();
Call call = okHttpClient.newCall(request);
//调用同步的方法
try {
Response execute = call.execute();//得到一个Response对象,数据都在这个里
Log.i(TAG, "postTong: "+execute.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
private void postYi() {
FormBody formBody = new FormBody.Builder().add("bb", "123").build();
Request request = new Request.Builder().url("https://www.httpbin.org/post")
.post(formBody)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i(TAG, "onFailure: "+e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.i(TAG, "postYi: "+response.body().string());
}
});
}
}