小编Sne*_*hal的帖子

连接失败:使用 Java、Apache HTTP 客户端测试 API 超时

我正在尝试使用 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

使用 Java .net 包

import java.io.IOException; …
Run Code Online (Sandbox Code Playgroud)

java apache api httpclient

1
推荐指数
1
解决办法
1万
查看次数

如何使用Apache Client 4.5.5处理无效的SSL证书?

我正在尝试使用Apache Client 4.5.5连接到我的Web服务器之一。

我正在尝试使用SSLContextBuilder,但现在似乎已弃用它,我不想使用已弃用的东西。

有人可以建议最新的处理无效认证的方法吗?

下面是我的代码,它工作正常,但是不建议使用SSLContext,SSLContextBuilder,loadTrustmaterial。

SSLContextBuilder sscb = new SSLContextBuilder();
sscb.loadTrustMaterial(null, new org.apache.http.conn.ssl.TrustSelfSignedStrategy());
SSLContext sslContext = sscb.build();

SSLConnectionSocketFactory sslSocketFactory =
        new SSLConnectionSocketFactory(sslContext, new org.apache.http.conn.ssl.DefaultHostnameVerifier());

CloseableHttpClient httpclient = HttpClients.custom()     
        .setDefaultCredentialsProvider(credsProvider)
        .setSSLSocketFactory(sslSocketFactory)
        .setConnectionManager(connectionMgr)
        .build();        

try {
    HttpPost httppost = new HttpPost("myURL");
Run Code Online (Sandbox Code Playgroud)

java apache apache-commons-httpclient

1
推荐指数
1
解决办法
588
查看次数