猿问

Unirest 在使用 asString 方法时给出 NoSuchMethodError

我正在尝试简单地访问端点并使用 asString() 方法获取响应主体和 HttpResponse。代码可以编译,但在运行时会出错,说没有这样的方法错误。

我将 Unirest 导入到我的 Maven 构建中,并且我一直在关注这里的文档

HttpResponse<String> response = Unirest.get("http://mywebsite/post")
                  .basicAuth("myapiuser", "mypassword")
                  .asString();

这是堆栈跟踪:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.client.config.RequestConfig$Builder.setNormalizeUri(Z)Lorg/apache/http/client/config/RequestConfig$Builder;
    at kong.unirest.apache.DefaultFactory.tryNormalize(DefaultFactory.java:47)
    at kong.unirest.apache.DefaultFactory.apply(DefaultFactory.java:42)
    at kong.unirest.apache.DefaultFactory.apply(DefaultFactory.java:32)
    at kong.unirest.apache.RequestPrep.getHttpRequestBase(RequestPrep.java:88)
    at kong.unirest.apache.RequestPrep.prepare(RequestPrep.java:69)
    at kong.unirest.apache.ApacheClient.request(ApacheClient.java:122)
    at kong.unirest.BaseRequest.asString(BaseRequest.java:177)
    at com.ideiio.testdataloader.TestDataLoader.testRestGet(TestDataLoader.java:62)
    at com.ideiio.testdataloader.TestDataLoader.main(TestDataLoader.java:34)

我无法确定这是否只是我缺少依赖项的问题(我对 Maven 很陌生)或者代码本身是否有问题(尽管 Unirest 调用几乎是文档的精确副本) .


暮色呼如
浏览 172回答 2
2回答

慕虎7371278

这是一个依赖性问题,我修复了它,在 pom.xml 中添加了更新版本的 httpclient。4.5.9 覆盖 4.5.6。<dependency> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<groupId>org.apache.httpcomponents</groupId> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<artifactId>httpclient</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<version>4.5.9</version> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</dependency>

喵喔喔

查看您的异常,它正在寻找方法“java.lang.NoSuchMethodError: org.apache.http.client.config.RequestConfig$Builder.setNormalizeUri(Z)Lorg/apache/http/client/config/RequestConfig$Builder”,其中我可以看到方法签名为“public RequestConfig.Builder setNormalizeUri(boolean normalizeUri)”这里的问题可能与使用的不兼容依赖项的版本有关,或者可能是由于类路径中的其他 jar 引起的冲突。可以请分享您的 pom.xml。
随时随地看视频慕课网APP

相关分类

Java
我要回答