gpt4 book ai didi

android - 使用 HttpURLConnection 请求 https

转载 作者:行者123 更新时间:2023-12-04 23:56:46 26 4
gpt4 key购买 nike

我正在使用 HttpURLConnection 来请求服务器。以前服务器使用 http only 协议(protocol),而现在它使用 https 协议(protocol)。

我的问题是我没有使用 HttpsURLConnection 仍然我的代码工作正常,当我不添加证书时怎么可能仍然工作。

下面是我的代码

//url is https://.......

URL m_url = new URL(p_url);
m_httpConnection = (HttpURLConnection) m_url.openConnection();

m_httpConnection.setConnectTimeout(CONNECTION_TIMEOUT);
m_httpConnection.setReadTimeout(READ_TIMEOUT);
System.setProperty("http.keepAlive", "false");
m_httpConnection.setUseCaches(false);
m_httpConnection.setDoOutput(p_isDoOutput);
if (p_contentType != null)
{
m_httpConnection.setRequestProperty("content-type", p_contentType);
}
m_httpConnection.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");

最佳答案

HttpsURLConnection 扩展 HttpURLConnection,您的连接是两者的一个实例。当您调用 openConnection() 时,该函数实际上返回一个 HttpsURLConnection。但是,因为 https 对象扩展了 http 对象,所以您的连接仍然是 HttpURLConnection 的一个实例。这就是您的类型转换起作用的原因。您也可以毫无问题地将连接转换为 HttpsURLConnection

基本上是这样想的。 openConnection() 返回不支持 HTTP 协议(protocol)的 URLConnection 对象。但是,正如您在代码中似乎意识到的那样,URLConnection 实际上是一个支持 HTTP 协议(protocol)的 HttpURLConnection。同样,您的 HttpURLConnection 实际上是一个支持 SSL/TLS 的 HttpsURLConnection

关于android - 使用 HttpURLConnection 请求 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34806947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com