Android Studio OkHttpClient使用

摘要:
本次来记录下OkHttpClient的使用,OkHttpClient是用来完成android客户端对服务端请求的工具。cannotresolvesymbolOkHttpClient这里需要引入implementation'com.squareup.okhttp3:okhttp:3.0.1'然后刷新下项目就可以了。代码:packagecom.example.administrator.testclient;importcom.squareup.*;importjava.io.IOException;importokhttp3.FormBody;importokhttp3.MediaType;importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.RequestBody;importokhttp3.Response;publicclassBaseHttpClient{publicstaticfinalMediaTypeMEDIA_TYPE_MARKDOWN=MediaType.parse;//01.定义okhttpprivatefinalOkHttpClientclient=newOkHttpClient();publicBaseHttpClient(){//client.connectTimeoutMillis();}/***发送一个表单请求*@throwsException*/publicvoidSendForm()throwsException{RequestBodyformBody=newFormBody.Builder().add.build();Requestrequest=newRequest.Builder().url.post.build();Responseresponse=client.newCall.execute();if(!response.isSuccessful())thrownewIOException;System.out.println;}/**POST请求*发送一个From请求*@throwsException*/publicvoidSendPostFrom()throwsException{RequestBodybody=newFormBody.Builder().add//添加参数体.add.build();Requestrequest=newRequest.Builder().post//请求参数.url.build();Responseresponse=client.newCall.execute();if(!response.isSuccessful())thrownewIOException;}}测试发现,上面的用不了,下面放一个测试通过的方法:publicvoidgetDatasyncFactory(){newThread(newRunnable(){@Overridepublicvoidrun(){try{OkHttpClientclient=newOkHttpClient();//创建OkHttpClient对象Requestrequest=newRequest.Builder().url("http://123.207.70.54:8080/SpringMvc/hello")//请求接口。如果需要传参拼接到接口后面。

本次来记录下OkHttpClient的使用,OkHttpClient是用来完成android 客户端对服务端请求的工具。

首先记住,使用网络的时候一定要加入权限,加入到AndroidMainfest.xml中

  <uses-permission android:name="android.permission.INTERNET" />

在初次使用的时候会出现报错。cannot resolve symbol OkHttpClient

这里需要引入

    implementation 'com.squareup.okhttp3:okhttp:3.0.1'

然后刷新下项目就可以了。

代码:

packagecom.example.administrator.testclient;
import com.squareup.*;
importjava.io.IOException;
importokhttp3.FormBody;
importokhttp3.MediaType;
importokhttp3.OkHttpClient;
importokhttp3.Request;
importokhttp3.RequestBody;
importokhttp3.Response;
public  classBaseHttpClient {
    public static finalMediaType MEDIA_TYPE_MARKDOWN
            = MediaType.parse("text/x-markdown; charset=utf-8");
    //01. 定义okhttp
    private  final  OkHttpClient client  = newOkHttpClient();
    publicBaseHttpClient(){
        //client.connectTimeoutMillis();
}
    /**
     * 发送一个表单请求
     * @throwsException
     */
    public void SendForm() throwsException {
        RequestBody formBody = newFormBody.Builder()
                .add("search", "Jurassic Park")
                .build();
        Request request = newRequest.Builder()
                .url("https://en.wikipedia.org/w/index.php")
                .post(formBody)
                .build();
        Response response =client.newCall(request).execute();
        if (!response.isSuccessful())
            throw new IOException("Unexpected code " +response);
        System.out.println(response.body().string());
    }
    /**POST 请求
     * 发送一个string请求
     * @throwsException
     */
    public void SendPostString() throwsException {
        String postBody = ""
                + "Releases
"
                + "--------
"
                + "
"
                + " * _1.0_ May 6, 2013
"
                + " * _1.1_ June 15, 2013
"
                + " * _1.2_ August 11, 2013
";
        Request request = newRequest.Builder()
                .url("https://api.github.com/markdown/raw")
                .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, postBody))
                .build();
        Response response =client.newCall(request).execute();
        if (!response.isSuccessful())
            throw new IOException("Unexpected code " +response);
        System.out.println(response.body().string());
    }
    /**POST 请求
     * 发送一个From请求
     * @throwsException
     */
    public   void SendPostFrom() throwsException {
        RequestBody body = newFormBody.Builder()
                .add("name", "sy")//添加参数体
                .add("age", "18")
                .build();
        Request request = newRequest.Builder()
                .post(body) //请求参数
                .url("http://123.207.70.54:8080/SpringMvc/hello")
                .build();
        Response response =client.newCall(request).execute();
        if (!response.isSuccessful())
            throw new IOException("Unexpected code " +response);
    }
    /**Get请求
     * 发送一个From请求
     * @throwsException
     */
    public void SendGetFrom() throwsException {
        Request request = newRequest.Builder()
                .get() //请求参数
                .url("http://123.207.70.54:8080/SpringMvc/hello")
                .build();
        Response response =client.newCall(request).execute();
        if (!response.isSuccessful())
            throw new IOException("Unexpected code " +response);
    }
}

测试发现,上面的用不了,下面放一个测试通过的方法:

public void getDatasyncFactory(){
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
                            Request request = new Request.Builder()
                                    .url("http://123.207.70.54:8080/SpringMvc/hello")//请求接口。如果需要传参拼接到接口后面。
                                    .build();//创建Request 对象
                            Response response = null;
                            response = client.newCall(request).execute();//得到Response 对象
                            if (response.isSuccessful()) {
                                Log.d("kwwl","response.code()=="+response.code());
                                Log.d("kwwl","response.message()=="+response.message());
                                Log.d("kwwl","res=="+response.body());
                                //此时的代码执行在子线程,修改UI的操作请使用handler跳转到UI线程。
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }

返回信息:

Android Studio OkHttpClient使用第1张

免责声明:文章转载自《Android Studio OkHttpClient使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇传入json字符串的post请求不同浏览器获取不同高与宽的方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

跨域拦截Access-Control-Allow-Origin设置多个origin

在Extjs和java项目碰到了需要同时处理跨域,外部要访问后台接口的问题 原来的代码是这样,只能设置一个extjs前台需要过滤的跨域请求 package com.xgt.config; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import ja...

js获取移动端设备信息(IMEM,IMIS,手机型号,系统版本,浏览器信息等)

方法一: HTML+  封装好的方法,额外配置,使用指定方法打包才可用 属性: imei: 设备的国际移动设备身份码 imsi: 设备的国际移动用户识别码 model: 设备的型号 vendor: 设备的生产厂商 uuid: 设备的唯一标识 参考地址: http://www.html5plus.org/doc/zh_cn/device.htm...

Hypertext Transfer Protocol HTTP/1.1 Status Code(HTTP 响应状态代码)

摘自CSDN http://blog.csdn.net/hpf911/article/details/7279206 Status Code Definitions(状态码定义) Informational 1xx  (1xx 提示信息) Continue (100 继续,表示客户端应该继续发起请求) Switching Protocols(101 协...

jsonp 跨域

适用场景:跨域传值 ajax端: $.ajax({    url:"XXXXX", dataType:'jsonp', data:{}, jsonp:'callbackparam', jsonp定义的callbackparam,会随机的向服务端发送一段字符串...

蛋疼的haproxy,原来你是这样支持请求转发的_阿福的技术BLOG_百度空间

蛋疼的haproxy,原来你是这样支持请求转发的_阿福的技术BLOG_百度空间 蛋疼的haproxy,原来你是这样支持请求转发的 2010-12-07 19:52 在一个WEB环境中,根据path区分静态文件和动态数据的请求,并把静态文件和CGI放在不同的服务器上。 后来,蛋疼的现象出现了:CGI服务器上发现了对静态文件的请求!!! GouRiDe的...

kepware http接口 java语言开发

读取某变量的值(OK HTTP OkHttpClient client = newOkHttpClient(); Request request = newRequest.Builder() .url("http://127.0.0.1:39321/iotgateway/read?ids=Channel1.Device1.tag1,Channel1...