我在新网址中使用HTTPS时遇到问题,导致它在https时失败:我如何在我的java代码中使用https网址
ByteArrayOutputStream output = new ByteArrayOutputStream();
URL urla = new URL(location);
InputStream openStream = urla.openStream();
byte[] buffer = new byte[ 1024 ];
int sizer = 0;
while( (size = openStream.read( buffer ) ) != -1 ) {
output.write( buffer, 0, sizer );
}
我的脚本会自动提供一个位置,但必须是https
我可以在浏览器上打开网址(我有一个log.d,告诉我网址)
答案 0 :(得分:0)
请参阅并下载Apache HttpComponents并使用该库进行连接。
有关更高级的示例,请查看我的HTTPS POST上传请求示例。
答案 1 :(得分:0)
location
来自哪里?无论它来自何处,都要使其发出HTTPS URL而不是HTTP。
此外,在尝试之前,请确保Web服务器实际上支持HTTPS。默认情况下,永远不会启用HTTPS,并且根据您的托管/设置,启用HTTPS可能会非常棘手。
编辑重新:评论:替换为
URL urla = new URL("https://" + location);
并且玩得开心。但是,请检查HTTPS URL是否有效。
编辑:您的HTTP下载代码错误。以下是HTTP下载在Android上的显示方式:
HttpClient hc = new DefaultHttpClient();
URL urla = new URL(location);
HttpResponse Resp = hc.execute(new HttpGet(urla));
//Check for HTTP errors here
InputStream openStream = Resp.getEntity().getContent();
byte[] buffer = new byte[ 1024 ];
int sizer = 0;
while( (size = openStream.read( buffer ) ) != -1 )
{
output.write( buffer, 0, sizer );
}
最好在后台线程上执行此操作。使用HTTP请求阻止UI线程是个坏主意。