我正在嘗試使用Java測試API。我正在使用Java 8,Apache HTTP客戶端4.5.3來測試它。我嘗試了許多不同的方法來使用Java .net類,Apache HTTP客戶端進行測試,但每次都是相同的問題;連接失敗:使用Java,Apache HTTP客戶端測試API的超時
在線程異常 「主」 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());
}
}
}
我試過SetHeader方法,但沒有工作,我得到相同的錯誤信息。我沒有在Apache HttpClient 4.5.3中找到getCredentialsProvider方法。我的公司不允許更改網絡連接,但稍後我會在個人計算機上嘗試。希望這會起作用,但前兩個選項並不奏效。 – Snehal
使用http代理的示例進行編輯。但是,你知道你的環境是否需要代理連接到外部URL? – alpeshpandya
我檢查我的瀏覽器設置,我們沒有使用任何代理連接外部網絡。 – Snehal