我正在尝试简单地访问端点并使用 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 调用几乎是文档的精确副本) .
2 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
这是一个依赖性问题,我修复了它,在 pom.xml 中添加了更新版本的 httpclient。4.5.9 覆盖 4.5.6。
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version> </dependency>
喵喔喔
TA贡献1735条经验 获得超5个赞
查看您的异常,它正在寻找方法“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。
添加回答
举报
0/150
提交
取消