关于OkHttp的用法
发布日期:2021-06-29 04:56:03 浏览次数:4 分类:技术文章

本文共 3211 字,大约阅读时间需要 10 分钟。

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的代码量少了很多 用起来也方便的多

转载地址:https://blog.csdn.net/zhang_linhua/article/details/73740614 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:关于一些TCP IP协议的解释ps:来自于网络的收集
下一篇:关于HttpURLConnection的用法

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月12日 06时11分36秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章