0


Postman导出的Java - OKHttp的代码怎么在本地调试运行

在使用过postman工具的朋友应该都知道,postman工具可以很便捷的导出很多编程语言/脚本语言的接口请求的脚本。那么,导出的java脚本在本地怎么样去运行呢?

其实导出的脚本都是可以直接运行的,不过,如果你直接新建一个.java的文件,然后把代码复制粘贴进去运行的话,肯定会报错的,因为导出的代码中是没有import第三方jar包的操作的代码,没有导入包,肯定是运行报错的,接下来简单记录下,要导入哪些包之后,才能正常的运行用OKHttp框架发送接口请求的脚本。

步骤:

在idea中创建一个maven工程,然后在pom.xml文件中加入第三方jar包的依赖,省得去网上下载jar包导入。当然,这里要求你本地要提前配置好maven的环境。

先到maven仓库中去找对应jar包的pom依赖

仓库地址:https://mvnrepository.com/ (网上有很多,也可以自己搜索)

b5eadf03d2c76caac0e7ced3db9a41e7.png

d3849db321f2c9f08ac45208e122a8fb.png

从上面选择对应的版本后,然后复制依赖关系到pom文件中去:

7a599ae44288e99cafa00e2ac7bd27f7.png

af56c37ab62bc0088c28e61227ee734b.png

接下来找一个postman中的调试好的接口,然后转换成java代码,拿出来运行一下试试

以之前部署的开源项目的一个登录接口为例,导出java脚本试一试:

0264698a2aaf6cafe210b1e74e248def.png

复制生成的java代码进去之后,需要导入包才能运行

4c10c37f560743417be141a5e2f95da7.png

复制出来的代码,需要导入包:

import okhttp3.*;

复制的代码放在main方法里面才能运行,还需要导入

import java.io.IOException;

最终完整代码如下:

import okhttp3.*;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient().newBuilder()
                .build();
        MediaType mediaType = MediaType.parse("application/json;charset=UTF-8");
        RequestBody body = RequestBody.create(mediaType, "{\r\n    \"username\": \"yanshi\",\r\n    \"password\": \"123456\",\r\n    \"code\": \"1234\",\r\n    \"uuid\": \"xxxxxxxxxxx\"\r\n}");
        Request request = new Request.Builder()
                .url("http://8.129.162.225:8080/login")
                .method("POST", body)
                .addHeader("Connection", "keep-alive")
                .addHeader("Pragma", "no-cache")
                .addHeader("Cache-Control", "no-cache")
                .addHeader("Accept", "application/json, text/plain, */*")
                .addHeader("isToken", "false")
                .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36")
                .addHeader("Content-Type", "application/json;charset=UTF-8")
                .addHeader("Origin", "http://8.129.162.225")
                .addHeader("Referer", "http://8.129.162.225/")
                .addHeader("Accept-Language", "zh,zh-CN;q=0.9,en;q=0.8")
                .build();
        Response response = client.newCall(request).execute();
    }
}

注意:导出的代码只是会发送请求,但是并不会打印返回结果,打印语句可以自己在后面加一行:

System.out.println(response.body().string());

输出的内容如下:

241644657652a81ad098e66464a3500a.png

java里面要获取OKHttpClient返回结果的文本内容的话,可以用response.body().string()

注意:

在运行的时候可能会出现如下错误:

Exception in thread "main" java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B
  at okio.Segment.writeTo(Segment.kt:169)
  at okio.Segment.compact(Segment.kt:152)
  at okio.Buffer.write(Buffer.kt:1491)
  at okio.Buffer.read(Buffer.kt:1503)
  at okio.Buffer.writeAll(Buffer.kt:1290)
  at okio.Options$Companion.buildTrieRecursive(Options.kt:189)
  at okio.Options$Companion.buildTrieRecursive(Options.kt:175)
  at okio.Options$Companion.buildTrieRecursive$default(Options.kt:107)
  at okio.Options$Companion.of(Options.kt:72)
  at okhttp3.internal.Util.<clinit>(Util.kt:70)
  at okhttp3.OkHttpClient.<clinit>(OkHttpClient.kt:1073)
  at com.oceanus.marketdata.Test.main(Test.java:8)

adbd9bd10c752d5b037dda3d9d4ca952.png

解决方法:

在pom文件中加入下面的依赖即可:

<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib</artifactId>
    <version>1.3.70</version>
</dependency>

至于为什么会报错,为什么加这个就可以解决,我也不太清楚。

d2967622b124d02d3c34cef353d0f8bd.png

** 更多精彩内容,可点击阅读全文或者公众号菜单处进行查看。**

标签: 编程语言 java maven

本文转载自: https://blog.csdn.net/liboshi123/article/details/125353827
版权归原作者 小博测试成长之路 所有, 如有侵权,请联系我们删除。

“Postman导出的Java - OKHttp的代码怎么在本地调试运行”的评论:

还没有评论