使用 HTTPS 连接重定向响应

Posted

技术标签:

【中文标题】使用 HTTPS 连接重定向响应【英文标题】:Redirect using HTTPS connection Response 【发布时间】:2013-08-26 17:33:19 【问题描述】:

创建了一个新的 HTTPS 连接并在连接 URL 上执行了一个 GET 方法调用。

我没有发送 301 (30X) 重定向,而是收到了带有 Xhtml 页面数据的响应,当在浏览器中处理时,该响应会自动提交并发送到重定向页面,但是如何在 java 代码中处理相同的内容?

这是响应数据

     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
      <body onload="document.forms[0].submit()">
       <noscript><p><strong>Note:</strong> Since your browser does not support javascript, you must press the Continue button once to proceed.</p></noscript>
       <form action="https://localhost:8083/Login" method="POST">
          <div>
             <input type="hidden" name="RelayState" value=""/>
             <input type="hidden" name="ResponseData" value=""/>
          </div>
          <noscript>
             <div>
               <input type="submit" value="Continue"/>
             </div>
         </noscript>
       </form>
     </body>
   </html>

仅供参考:我只需要向表单操作属性中的 URL 发送 HTTP/HTTPS 请求。我不打算在浏览器中打开 html。

【问题讨论】:

【参考方案1】:

您能提供您的连接代码吗?作为一种通用方法,您可以为 HttpUrlConnection 设置 setInstanceFollowRedirect(false),这样重定向就不会通过,您可以手动处理它们。这是一个很好的例子:http://www.mkyong.com/java/java-httpurlconnection-follow-redirect-example/

【讨论】:

以上是关于使用 HTTPS 连接重定向响应的主要内容,如果未能解决你的问题,请参考以下文章

OpenID 连接成功的响应在重定向 uri 和访问令牌之间有 #

Amazon AWS 307 响应和永久重定向到 HTTPS

如何配置 Krakend 使其按原样返回 http 重定向响应而不是遵循 http 重定向?

使用 java servlet 在重定向响应中丢失 HTTP 自定义标头

使用 node.js/express 自动 HTTPS 连接/重定向

在 Dropwizard 中将 http 连接重定向到 https 的首选方式