android sdk unexpected http status 416,Android http协议转换https协议 6.0以下版本 网络请求失败解决方法...

本文介绍了如何通过在程序启动时设置HostnameVerifier和在网络请求中使用自定义证书,实现对HTTPS连接的全网信任。方法1适用于全局设置,方法2则适用于特定请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法1:只需要在启动程序加载界面前添加下面代码

SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());

方法2:在网络请求数据时,添加自定义证书,请求是添加:

/**

* 自定义证书,HTTPS连接

*/

public static void GetNetWork() {

try {

String path = "https://192.168.1.123:8080/index.html";

BasicHttpParams params = new BasicHttpParams();

HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

HttpProtocolParams.setContentCharset(params,

HTTP.DEFAULT_CONTENT_CHARSET);

HttpProtocolParams.setUseExpectContinue(params, true);

SSLSocketFactory.getSocketFactory().setHostnameVerifier(

new AllowAllHostnameVerifier());

SchemeRegistry schReg = new SchemeRegistry();

schReg.register(new Scheme("http", PlainSocketFactory

.getSocketFactory(), 80));

schReg.register(new Scheme("https", SSLTrustAllSocketFactory

.getSocketFactory(), 443));

ClientConnectionManager connMgr = new ThreadSafeClientConnManager(

params, schReg);

DefaultHttpClient client = new DefaultHttpClient(connMgr, params);

HttpGet request = new HttpGet(path);

HttpResponse httpResponse = client.execute(request);

int responseCode = httpResponse.getStatusLine().getStatusCode();

String message = httpResponse.getStatusLine().getReasonPhrase();

HttpEntity entity = httpResponse.getEntity();

if (responseCode == 200 && entity != null) {

Log.e("log", entity.toString());

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

转载自  https://blog.csdn.net/qq_25462179/article/details/80264293

https://blog.csdn.net/u012929068/article/details/54910610 参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值