首先在github上寻找okhttp依赖

我们首先创建一个OkHttpClient实例

OkHttpClient client = new OkHttpClient();
接下来如果想发起一条HTTP请求,就需要创建一个Request对象
Request request = new Request.Builder().build();

我们要在build()方法之间连缀很多其他方法来丰富这个Requset对象,比如可以通过url()方法来设置目标网络地址

 Request request = new Request.Builder() .url("https://www.baidu.com") .build();
之后调用OkHttpClient的newCall()方法来创建一个Call对象,并调用他的execute()方法来发送请求并获取服务器返回的数据
Response response = client.newCall(request).execute();
其中Response对象就是服务器返回的数据了,我们可以通过如下写法来得到返回的具体内容
 String responseData = response.body().string();

发起POST请求需要先构建出一个RequestBody对象来存放待提交的参数,

        RequestBody requestBody = new FormBody.Builder()                .add("username","admin")                .add("password","123456")                .build();
然后再Request.Bulider中调用一下post()方法,并将RequestBody对象传入
        Request request1 = new Request.Builder()                .url("https://www.baidu.com")                .post(requestBody)                .build();

eg:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    TextView responseText;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button sendRequest = findViewById(R.id.send_request);        responseText= findViewById(R.id.response_text);        sendRequest.setOnClickListener(this);    }    @Override    public void onClick(View v) {        if (v.getId()==R.id.send_request){            sendRequestWithOkHttp();        }    }    private void sendRequestWithOkHttp(){        new Thread(new Runnable() {            @Override            public void run() {                try {                   OkHttpClient client = new OkHttpClient();                   Request request = new Request.Builder()                           .url("https://www.baidu.com")                           .build();                   Response response = client.newCall(request).execute();                   String responseData = response.body().string();                   showResponse(responseData);                }catch (Exception e){                    e.printStackTrace();                }            }        }).start();    }    private void showResponse(final String response){        runOnUiThread(new Runnable() {            @Override            public void run() {                responseText.setText(response);            }        });    }}







更多相关文章

  1. JSONObject与JSONArray的使用 jsonobject里面包含jsonarray
  2. Android(安卓)ART 的初始化和启动
  3. Android(安卓)装载器---启动装载器
  4. Android(安卓)2.3 Overlay
  5. Android开发小技巧系列(六)
  6. Android(安卓)OKhttp请求遇到的问题
  7. Android(安卓)Retrofit Put请求
  8. SharedPreferences保存对象
  9. Android(安卓)Service用法讲解与实例

随机推荐

  1. Android(安卓)Studio配置文件路径修改
  2. Android 自动化测试 robotium
  3. Android recovery UI实现分析
  4. Android主流三方库源码分析(七、深入理解B
  5. 从Alarm看Android上层UI到内核代码的流程
  6. Android的IPC机制Binder的各个部分
  7. Android-ListView几个比较特别的属性
  8. Android Project Structure
  9. 【android】欢迎来到Android多进程时代
  10. Android兼容性测试框架(CTS)手册