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

用Apache httpclient实现Java-HTTPS基本认证

徐栋
2023-03-14
        try {

            CloseableHttpClient httpClient = null;
            try {
                httpClient = HttpClients.custom()
                        .setSSLSocketFactory(new SSLConnectionSocketFactory(SSLContexts.custom()
                                        .loadTrustMaterial(null, new TrustSelfSignedStrategy())
                                        .build()
                                )
                        )
                .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
                        .build();
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            } catch (KeyManagementException e) {
                e.printStackTrace();
            } catch (KeyStoreException e) {
                e.printStackTrace();
            }

            HttpGet getRequest = new HttpGet("https://localhost:5050/getdata");
            getRequest.addHeader("Accept", "*/*");
            getRequest.addHeader("Authorization", "Basic UBJ0aHVyOmFo0XElYHU=");
            HttpResponse response = httpClient.execute(getRequest);
Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response

真的!这不是一个有效的HTTP响应,我想要得到,这是一个有效的HTTPS响应!

我想我错过了什么...

共有1个答案

华誉
2023-03-14

解决了!

错误来自服务器端:我的响应没有包含任何标题....

httpclient似乎喜欢来自服务器的精心制作的响应。这对浏览器或curl来说不是真的:垃圾他们可以接收,他们会显示!

 类似资料:
  • 这个网页的数据如何获得? https://fiin-core.ssi.com.vn/Master/GetListOrganization?langu... 访问的时候,要求认证 点击,verify you are human,可以看到数据。 现在,我想抓取这些数据: 怎么办呢?

  • 本文向大家介绍Python使用htpasswd实现基本认证授权的例子,包括了Python使用htpasswd实现基本认证授权的例子的使用技巧和注意事项,需要的朋友参考一下 前面我讲解了如何将树莓派(Raspberry Pi)打造成无线路由,感觉每次通过命令ssh管理显麻烦,于是自己动手编写Web界面,主要是使用Python编写的CGI程序,这里用到了mini_httpd这款轻量的Web服务器,本来

  • 概括来说,fpm的实现就是创建一个master进程,在master进程中创建并监听socket,然后fork出多个子进程,这些子进程各自accept请求,子进程的处理非常简单,它在启动后阻塞在accept上,有请求到达后开始读取请求数据,读取完成后开始处理然后再返回,在这期间是不会接收其它请求的,也就是说fpm的子进程同时只能响应一个请求,只有把这个请求处理完成后才会accept下一个请求,这一点

  • 本文向大家介绍详解NodeJS Https HSM双向认证实现,包括了详解NodeJS Https HSM双向认证实现的使用技巧和注意事项,需要的朋友参考一下 工作中需要建立一套HSM的HTTPS双向认证通道,即通过硬件加密机(Ukey)进行本地加密运算的HTTPS双向认证,和银行的UKEY认证类似。 NodeJS可以利用openSSL的HSM plugin方式实现,但是需要编译C++,太麻烦,作

  • 基本认证在 Web 应用中是非常流行的认证机制。 基本身份验证通常用于无状态客户端,它们在每个请求中传递其凭证。 将其与基于表单的认证结合使用是很常见的,其中通过基于浏览器的用户界面和作为Web服务来使用应用。 但是,基本认证将密码作为纯文本传输,是不安全的,所以它只能在真正通过加密的传输层(如HTTPS)中使用。 在 jpa-userdetailsservice项目的基础上,我们构建了一个bas

  • 本文向大家介绍HTTP基本认证(Basic Authentication)的JAVA实例代码,包括了HTTP基本认证(Basic Authentication)的JAVA实例代码的使用技巧和注意事项,需要的朋友参考一下 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息。 但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证。 下面来看看一看这个认证的工作过程: