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();
            }
        }
    }

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

  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/zhishifx/p/9430891.html
Copyright © 2011-2022 走看看