gpt4 book ai didi

php - 从 https 站点发送和接收数据

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:32 25 4
gpt4 key购买 nike

我有一个 android 应用程序,它向服务器发送 http 请求,并从它接收响应。直到今天,我以这种方式向服务器发送请求:

 DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(http_url);
httpPost.setEntity(new UrlEncodedFormEntity(params));

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream is = httpEntity.getContent();

其中 http_url 包含我需要调用的脚本的 http url ( http://www.mydomain.it/script.php )。现在我已经在我的服务器上购买并安装了一个 SSL 证书,所以我需要开始使用它来加密数据。

我对发送和接收数据使用了相同的代码,但我使用的不是 http_url,而是 https_url ( https://www.mydomain.it/script.php )。使用 wireshark 我注意到数据包已加密,但我想知道这是否是发送 https 请求的正确方法。DefaultHttpClient 是否向所有操作提供启动加密通信,或者是否有其他 Java 类来执行此操作?

最佳答案

https请求使用此方法获取httpClient:

public DefaultHttpClient getNewHttpClient() {
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);

SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https", sf, 443));

ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);

return new DefaultHttpClient(ccm, params);
} catch (Exception e) {
return new DefaultHttpClient();
}
}

关于php - 从 https 站点发送和接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820357/

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