关于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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月12日 06时11分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
以太坊开发者提出--可逆ICO;南非加密货币公司或将无法继续税收优惠;微软与纳斯达克合作
2019-04-29
区块链是否能帮助再生能源寻找解决方案?
2019-04-29
openstack使用-填坑:计算节点Hypervisor类型是QEMU,不是 KVM
2019-04-29
OpenStack PCI passthrough(PCI直通)环境配置
2019-04-29
Docker容器环境下,JDBC连接oracle Connection reset异常
2019-04-29
FreeBSD之防火墙配置
2019-04-29
kubelet runtime
2019-04-29
(VMware Hypervisor)ESXi5.5远程升级到ESXi6.7
2019-04-29
Shell脚本札记(持续更新)
2019-04-29
Linux 安全删除脚本(避免删除重要文件)
2019-04-29
【K8S 一】使用kubeadm工具快速部署Kubernetes集群(单Master)
2019-04-29
Cgroup drivers:systemd cgroupfs 区别
2019-04-29
华为服务器(鲲鹏)aarch64/arm64架构下安装部署K8S(kubeadm工具)
2019-04-29
【K8S 二】K8S搭建Docker Registry私有仓库(自签发证书+登陆认证)
2019-04-29
【K8S 三】部署 metrics-server 插件
2019-04-29
【K8S 四】部署 kubernetes-dashboard 插件
2019-04-29
端口转发:Rinetd简化虚拟化网络配置(另附:Windows系统端口转发)
2019-04-29