package com.example.fafa.mydemoaboutnet; import android.app.DownloadManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.w3c.dom.Text; import java.io.IOException; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; public class SecondActivity extends AppCompatActivity implements View.OnClickListener { private Button mGet; private Button mSend; private TextView mView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); initView(); } private void initView() { mGet = (Button) findViewById(R.id.second_get); mSend = (Button) findViewById(R.id.second_send); mView = (TextView) findViewById(R.id.second_view); mGet.setOnClickListener(this); mSend.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.second_get: getmessages(); break; case R.id.second_send: sendMessages(); break; } } private void getmessages() { new Thread(new Runnable() { //如果是发送POST的请求那么就复杂一点了 需要构建一个RequestBody(请求体存放数据) RequestBody body= new FormBody.Builder() // .add("username","zhang") // .add("passwor","123456") .build(); //然后再Request。builder 中调用一下post()方法 将body传入 Request request= new Request.Builder() .url("http://www.baidu.com") .post(body) .build(); @Override public void run() { OkHttpClient client= new OkHttpClient();//实例化一个okhttp对象 try { Response response=client.newCall(request).execute();//请求并获取服务器返回的数据执行 String responseData = response.body().string();//获取返回的具体内容 showView(responseData); } catch (Exception e) { e.printStackTrace(); } } }).start();; } private void sendMessages() { new Thread(new Runnable() { @Override public void run() { OkHttpClient client= new OkHttpClient(); Request request= new Request.Builder(). url("http://www.baidu.com") .build(); try { Response response=client.newCall(request).execute(); String responseData=response.body().string(); showView(responseData); } catch (IOException e) { e.printStackTrace(); } } }).start(); } private void showView(final String responseData) { runOnUiThread(new Runnable() { @Override public void run() { mView.setText(responseData); } }); }}
//看起来比HttpURLConnection的代码量少了很多 用起来也方便的多
关于OkHttp的用法
最新推荐文章于 2023-04-11 19:56:43 发布