当前位置: 首页 > 知识库问答 >
问题:

HttpClient抛出ssl错误,但webview和HttpsURLConnection不抛出

姬安志
2023-03-14

因此,我使用服务器(google-app-engine)在客户端应用程序上进行身份验证。当我使用JavaFX、Webview或HttpsURLConnection时,一切都很好,它们连接起来了,但是当我使用HttpClient时,它会抛出以下错误

javax.net.ssl.sslpeerunverifiedexception:peer未在sun.security.ssl.sslsessionimpl.getPeerCertificates(来源未知)在org.apache.http.conn.ssl.abstractVerifier.verific(abstractVerier.java:128)在org.apache.http.conn.ssl.sslactVerier.verific(abstractVerier.java:128)在java:147)在org.apache.http.impl.conn.abstractPooledConnAdapter.open(abstractPooledConnAdapter.java:108)在org.apache.http.impl.client.defaultRequestDirector.execute(DefaultRequestDirector.java:415)在org.apache.http.impl.client.abstractHttpClient.execute(abstractHttpClient.java:641)在

完整的ssl报告在这里

我正在使用的代码

System.out.println("I started");
        String https_url = "https://app.quagrum.com";
          URL url;
          try {

             url = new URL(https_url);
             HttpsURLConnection con = (HttpsURLConnection)url.openConnection();//Works 
             System.out.println("I ran?");
    }
          catch(Exception a)
          {

          }
    try {
        HttpGet get = new HttpGet("https://app.quagrum.com");
        HttpClient httpclient = new DefaultHttpClient();
        HttpResponse response = httpclient.execute(get);//Throws error
        System.out.println(response.getStatusLine().getStatusCode());
        if(response.getStatusLine().getStatusCode()!=200)
        {
            HttpEntity entity = response.getEntity();

            if (entity != null) {
                InputStream instream = entity.getContent();
                try {
                    Scanner s = new Scanner(instream).useDelimiter("\\A");
                    String result = s.hasNext() ? s.next() : "";
                    System.out.println(result);
                    result =result.substring(result.indexOf("\"",7));
                    result=result.substring(0, result.indexOf("\""));
                    System.out.println(result);
                } finally {
                    instream.close();
                }
            }
        }
        }catch(Exception a)
        {
            a.printStackTrace();
        }
    }

共有1个答案

乔望
2023-03-14

现在才管用。这是好的java让我完全重新设计我的程序的一部分,然后只是让它在以后的版本中工作

 类似资料:
  • 我使用的是Apache httpclient 4.3.6和httpcore 4.3.3(与opensaml 3.3.0捆绑)。我试图通过HTTPS通过代理获取网页,但每次都会收到SocketTimeoutException。HTTP连接工作正常。具体的超时并不重要;它只是需要更长的时间才能以更高的值失败。 示例代码: 尝试连接到代理时引发异常。堆栈跟踪是 这看起来很像Apache问题HTTPCLI

  • 我在服务层的spring-boot应用程序中使用了Hystrix(Camden.sr7版本),而没有回退方法。Service的方法之一如下所示: 对于这样的响应,不清楚实际上是从哪个方法抛出异常的。如果我将版本更改为brixton.sr5(以前的版本),它将返回清晰的响应: 因此Hystrix的新版本(实际上是spring-cloud-dependencies的新版本)不会抛出HystrixRun

  • 无论如何,在这些条件下,endpoint返回一个包含有意义信息的响应对象,并将其标记为400错误(错误请求)。RestTemplate将看到400错误并抛出HttpClienterRoreXception。由于抛出此异常,因此响应对象为NULL。 当我使用常规apache HttpClient调用执行相同的请求(坏数据和所有)时,不会引发异常(尽管出现400错误),并且返回有意义(有用)的请求对象

  • 当我尝试使用JQuery POST向服务器发送数据时,我得到以下错误。 我做错了什么? 未捕获的TypeError:在e处非法调用(https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js:4:7727)在Ab(https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.

  • 我已经安装了用于PHP开发的XAMPPv3.2.1。由于我已经安装了Skype并使用端口80和443,我将XAMPP配置为在端口1333(http.conf)和3333(https.conf)上运行。 我启动了xampp MySQL服务并成功启动。 当我导航到超文本传输协议://: 1333 xampp工作正常,但是如果我点击phpmyadmin我得到以下错误。 MySQL说:文档 服务器没有响应

  • 为了参考,我的“jps”命令的输出结果是