【发布时间】:2017-04-12 14:37:53
【问题描述】:
我正在尝试使用 Java 测试 API。我正在使用 Java 8、Apache HTTP 客户端 4.5.3 来测试它。我尝试了许多不同的方法来使用 Java .net 类、Apache HTTP 客户端进行测试,但每次都是同样的问题;
线程“main”中的异常 org.apache.http.conn.HttpHostConnectException:连接到 api.github.com:443 [api.github.com/192.30.253.116, api.github.com/192.30.253.117] 失败:连接超时:连接 在 org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159)
每次我都抽空。但如果我在浏览器中使用相同的 URL,我会得到结果。
有人可以帮我指出问题吗?是设置问题还是代码问题?
尝试了互联网上几乎所有可用的代码。我是 API 测试的初学者,对 HTTP 工作流程没有深入了解。
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.IOException;
import java.net.*;
public class API {
public static void main(String args[]) throws IOException, URISyntaxException {
HttpUriRequest request = new HttpGet( "https://api.github.com" );
// When
HttpResponse response = HttpClientBuilder.create().build().execute( request );
System.out.println(response.getStatusLine().getStatusCode());
}
}
使用 Java .net 包
import java.io.IOException;
import java.net.*;
public class API {
public static void main(String args[]) throws IOException, URISyntaxException {
URL url = new URL("http://maps.googleapis.com/maps/api/geocode/json?address=chicago&sensor=false");
//URL url = uri.toURL();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/xml");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("HTTP error code : "
+ conn.getResponseCode());
}
}
}
【问题讨论】:
标签: java apache api httpclient