zoukankan      html  css  js  c++  java
  • OkHttp的get和post请求

    OkHttp的get、Post

    由于没有看过书籍,不能将理论正确的描述出来,只能根据自己的理解,带大家认识下java开发下的OkHttp的get和post两种请求方式。

    依赖的包为:okio-1.15.0.jar+okhttp-3.11.0.jar

    如果出现NoSuchMethod情况可能是两个包产生了冲突,也可能是因为包里本身就不包含那个方法,最开始我用的okio-1.9.0.jar的包出现了该问题,查看是存在该方法,于是更换成更新的okio-1.15.0.jar,解决了冲突问题。

    方法okHttpGet()里面说明了OkHttp的get请求方式,其中 new Request.Builder().url(url).build();可以换成new Request.Builder().get().url(url).build()。

    方法okHttpPost()说明了post请求方式,主要需要传入参数,方式有很多种可以是JSON、Map,这里采用了最简单传参。

    package http;
    
    import java.io.IOException;
    
    import okhttp3.Call;
    import okhttp3.Callback;
    import okhttp3.FormBody;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.RequestBody;
    import okhttp3.Response;
    
    public class OkHttpTest {
        public static void main(String args[]) {
            OkHttpTest otget = new OkHttpTest();
            String url1 = "http://baidu.com";
            String url = "http://122.222.222.222:9004/http/sms";
            otget.okHttpGet(url1);
            otget.okHttpPost(url);
        }
    
        private void okHttpGet(String url) {
            // 首先需要创建一个OkHttpClient对象用于Http请求, 可以改成全局型
            OkHttpClient client = new OkHttpClient().newBuilder().build();
            // 创建一个request对象
            Request request = new Request.Builder().url(url).build();
            // 执行和回调
            client.newCall(request).enqueue(new Callback() {
                public void onFailure(Call call, IOException e) {
    
                }
    
                public void onResponse(Call call, Response response)
                        throws IOException {
                    String str = response.body().string();
                    System.out.println("OkHttp的get()请求方式" + str);
                }
            });
    
        }
    
        /*
         * post请求 get不一样的地方就是传参数不一样,post请求需要把参数封装到RequestBody对象,
         * 调用Request对象的post方法把RequestBody传入进去
         */
        private void okHttpPost(String url) {
            OkHttpClient okHttpClient = new OkHttpClient();
            FormBody.Builder formBuilder = new FormBody.Builder();
            formBuilder.add("name", "test1");// 请求参数一
            formBuilder.add("pass", "test2");// 请求参数二
            formBuilder.add("mobiles", "XXX2XXXXXXX");// 请求参数三
            formBuilder.add("content", "OkHttp的post()请求方式.测试测试");// 请求参数四
            RequestBody requestBody = formBuilder.build();
            Request request = new Request.Builder().post(requestBody).url(url)
                    .post(requestBody).build();
            try {
                Response response = okHttpClient.newCall(request).execute();
                String result = response.body().string();
                System.out.println("OkHttp的post()请求方式" + result);
                response.body().close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    一步一步提升自己,只有静下来好好分析才可以理解,当有其他思想时,自己是怎么都进不到里面去的,我就是这样,突然想说只要用心,我们就会有收获。

  • 相关阅读:
    招聘 微软全球技术支持中心 sql server组
    retrofit2 上传图片
    android 6.0权限判断 音频 拍照 相册
    android studio 修改成自己jks(keystore)签名文件
    android 透明度颜色值
    android studio clone 失败
    fresco Bitmap too large to be uploaded into a texture
    android 虚线
    EventBus 3.0使用
    java.lang.IllegalArgumentException: You must not call setTag() on a view Glide is targeting
  • 原文地址:https://www.cnblogs.com/zhishifx/p/9430891.html
Copyright © 2011-2022 走看看