前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

OkHttp

作者头像
收心
发布2022-09-29 10:51:39
4850
发布2022-09-29 10:51:39
举报
文章被收录于专栏:Java实战博客

之前一直用Hutool,早就忘记OkHttp这个牛逼的工具了,因为担心公司整体业务使用OkHttp,于是将原Hutool代码修改为OkHttp。

代码语言:javascript
复制
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.10.0</version>
</dependency>

入门Demo Get无参数

代码语言:javascript
复制
    /**
     * 1、创建客户端
     * 2、创建请求
     * 3、客户端执行请求
     * 4、处理结果
     */
    @Test
    public void openHttpTestDemo1() {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url("Https://www.baidu.com")
                .get()  // 默认是get请求
                .build();
        try (Response response = client.newCall(request).execute()) {
            System.out.println(response.body().string());
        } catch (IOException e) {
            throw new RuntimeException("OkHttp请求&处理:异常", e);
        }
    }

Get带参数

Post

Post Json参数。请求Body格式:x-www-form-urlencoded (不支持文件上传)

代码语言:javascript
复制
        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        RequestBody body = RequestBody.create(mediaType, "param1=01&param2=02");
        Request request = new Request.Builder()
                .url("https://www.baidu.com")
                .method("POST", body)
                .addHeader("Content-Type", "application/x-www-form-urlencoded")
                .build();
        Response response = client.newCall(request).execute();

Post 表单参数。请求Body格式:form-data (带有文件上传)

代码语言:javascript
复制
        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        MediaType mediaType = MediaType.parse("text/plain");
        RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("param1","1")
                .addFormDataPart("param2","IMG_0001.png",
                        RequestBody.create(MediaType.parse("application/octet-stream"),
                                new File("/Users/zanglikun/Desktop/IMG_0001.png")))
                .build();
        Request request = new Request.Builder()
                .url("https://www.baidu.com")
                .method("POST", body)
                .build();
        Response response = client.newCall(request).execute();

如果你不想写OkHttp的代码,记得PostMan可以生成Java代码:https://cloud.tencent.com/developer/article/2080977

特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 入门Demo Get无参数
  • Post
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档