如何在我的新网址中使用HTTPS?

时间:2012-01-04 18:58:15

标签: java android

我在新网址中使用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,告诉我网址)

2 个答案:

答案 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线程是个坏主意。