不使用 maven 构建 unirest 请求
Building unirest request without maven
我一直在尝试学习 unirest,显然,我一直在学习如何在不使用 maven 的情况下编译它。以下是我到目前为止所学的内容,因为我发现的大多数教程都是用 Maven 教授 unirest。我不确定我还错过了什么,但这是我到目前为止得到的:
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
public class MainMethod {
public static void main (String argsp[]) throws UnirestException {
HttpResponse<JsonNode> jsonResponse = Unirest.get("http://www.mocky.io/v2/5bc4373c300000b8097587bd")
.header("accept", "applicaiton/json").queryString("apiKey","123")
.asJson();
System.out.println(jsonResponse.getBody());
}
}
每次尝试 运行 源代码时,我都会收到错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequest
我只是想创建一个简单的请求来学习 unirest 的基础知识,但到目前为止我没有做任何好事。
我是不是忘了做什么?欢迎任何建议。谢谢。
编辑:
这是我正在关注的教程的源代码:
@Test
public void shouldReturnStatusOkay() {
HttpResponse<JsonNode> jsonResponse
= Unirest.get("http://www.mocky.io/v2/5a9ce37b3100004f00ab5154")
.header("accept", "application/json").queryString("apiKey", "123")
.asJson();
assertNotNull(jsonResponse.getBody());
assertEquals(200, jsonResponse.getStatus());
}
由于本教程使用了名为 assertNotNull
和 assertEquals
的方法,我无法弄清楚它们是什么,所以我只是将其替换为 print 以希望我能看到如何它响应。
此外,我认为我将此网站用作模拟网络服务。我不知道它是否对问题有用,但它是:
我收到的整个错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/concurrent/FutureCallback
at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)
at MainMethod.main(MainMethod.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.http.concurrent.FutureCallback
at java.net.URLClassLoader.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
您在类路径中遗漏了 httpcore-4.2.3.jar
。添加它,错误将得到解决
您必须将 unirest 使用的所有依赖项作为直接依赖项添加到您的项目中。
看看这里的 unirest 依赖树:
添加对你的依赖pom.xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.10</version>
</dependency>
在运行 mvn install
命令之后你的问题就解决了。
或没有 Maven
从 link 下载 httpcore 的 jar 文件并添加到您的 class 路径中。
我一直在尝试学习 unirest,显然,我一直在学习如何在不使用 maven 的情况下编译它。以下是我到目前为止所学的内容,因为我发现的大多数教程都是用 Maven 教授 unirest。我不确定我还错过了什么,但这是我到目前为止得到的:
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
public class MainMethod {
public static void main (String argsp[]) throws UnirestException {
HttpResponse<JsonNode> jsonResponse = Unirest.get("http://www.mocky.io/v2/5bc4373c300000b8097587bd")
.header("accept", "applicaiton/json").queryString("apiKey","123")
.asJson();
System.out.println(jsonResponse.getBody());
}
}
每次尝试 运行 源代码时,我都会收到错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequest
我只是想创建一个简单的请求来学习 unirest 的基础知识,但到目前为止我没有做任何好事。
我是不是忘了做什么?欢迎任何建议。谢谢。
编辑:
这是我正在关注的教程的源代码:
@Test
public void shouldReturnStatusOkay() {
HttpResponse<JsonNode> jsonResponse
= Unirest.get("http://www.mocky.io/v2/5a9ce37b3100004f00ab5154")
.header("accept", "application/json").queryString("apiKey", "123")
.asJson();
assertNotNull(jsonResponse.getBody());
assertEquals(200, jsonResponse.getStatus());
}
由于本教程使用了名为 assertNotNull
和 assertEquals
的方法,我无法弄清楚它们是什么,所以我只是将其替换为 print 以希望我能看到如何它响应。
此外,我认为我将此网站用作模拟网络服务。我不知道它是否对问题有用,但它是:
我收到的整个错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/concurrent/FutureCallback
at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)
at MainMethod.main(MainMethod.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.http.concurrent.FutureCallback
at java.net.URLClassLoader.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
您在类路径中遗漏了 httpcore-4.2.3.jar
。添加它,错误将得到解决
您必须将 unirest 使用的所有依赖项作为直接依赖项添加到您的项目中。
看看这里的 unirest 依赖树:
添加对你的依赖pom.xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.10</version>
</dependency>
在运行 mvn install
命令之后你的问题就解决了。
或没有 Maven
从 link 下载 httpcore 的 jar 文件并添加到您的 class 路径中。