JSON over HTTP API Java遇到错误和异常
我已经编写了JavaAPI,使用apacheHTTP客户端库通过http执行JSON的请求/响应,下面列出了代码。它遇到了一些错误和异常,请您提供指针,如何修复它?我被这个问题弄糊涂了。我使用EclipseMars、SunOracleJava8、ApacheTomcat7.0.52、Ubuntu14.04作为基本系统来生成此代码JSON over HTTP API Java遇到错误和异常,java,json,eclipse,http-headers,runtime-error,Java,Json,Eclipse,Http Headers,Runtime Error,我已经编写了JavaAPI,使用apacheHTTP客户端库通过http执行JSON的请求/响应,下面列出了代码。它遇到了一些错误和异常,请您提供指针,如何修复它?我被这个问题弄糊涂了。我使用EclipseMars、SunOracleJava8、ApacheTomcat7.0.52、Ubuntu14.04作为基本系统来生成此代码 package bhawnas; import java.io.BufferedReader; import java.io.IOException; imp
package bhawnas;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.*;
import org.apache.commons.*;
import org.apache.http.impl.*;
import org.commonjava.web.json.*;
import org.apache.http.impl.client.HttpClientBuilder;
import org.json.JSONException;
import org.json.JSONObject;
@SuppressWarnings("unused")
public class SunSofProb {
public static void main (String args[]) {
//Exception Handling
try {
//create Http Client
HttpClient httpClient = HttpClientBuilder.create().build();
//Create fresh GET request for mentioned URL in Prob Stmt
HttpGet getRequest = new HttpGet ("http://surya-interview.appspot.com/message");
// Add header to accept getRequest which accepts application/JSON data
getRequest.addHeader("accept:X-Surya-Email-id:arunsingh.in@gmail.com", "application/json");
//Execute request and fetch response
HttpResponse response = httpClient.execute(getRequest);
// Check for HTTP Response code 200/404/500
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed:Http error code: " + response.getStatusLine().getStatusCode());
}
// else {
//throw new RuntimeException("Error reported code:" + response.getStatusLine().getStatusCode());
// }
//Capture GET complete application/json body response
BufferedReader br = new BufferedReader (new InputStreamReader((InputStream) response.getEntity().getContentType()));
String output;
System.out.println("================Output:===================");
//iteration through simple JSON response and depict on console
while ((output = br.readLine()) != null) {
System.out.println(output);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在我看来,是否有一些库/jar要添加到类路径中,这就是为什么会发生这个运行时错误,我是否使用了错误的环境,请建议修复程序
错误和例外情况如下:
Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56)
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:69)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:81)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:56)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:460)
at bhawnas.SunSofProb.main(SunSofProb.java:47)
检查一下这个类似的问题@Nio您是否打算说我正在编写代码,我的意思是说我正在编写MAVEN代码,但我在简单的Java环境中运行。?另外,对我来说,这是ApacheHTTP客户端库中的一种错误,您可以创建指针和修复程序吗?如果您这样做了,您解决了吗?