0

我在我的 SG 中使用 HTTPS 协议安装了 2 个目的地。1 用于: 在此处输入图像描述

另一个是: 在此处输入图像描述

从我的应用程序中,我想像这样访问这两个 url:

    url = new URL(urlStr);
        httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setReadTimeout(5000);
        httpConn.setConnectTimeout(5000);
        if(httpConn.getResponseCode() == 200){
            inStream = httpConn.getInputStream();
            bytesData = IOUtils.toByteArray(inStream);
        }

顺便说一句,我将 SG 中的云主机和端口设置为“urlStr”。但它不起作用。所以任何人都可以帮忙提示一下吗?

4

2 回答 2

0

我进一步充实了代码并让它工作。也许这个扩展的代码示例会对您有所帮助。我建议在 URL 参数中输入以 https 开头且不带端口号的地址,因为它默认为 443。您可以使用类似于java -cp commons-io-2.6/commons-io-2.6 的类路径来运行它。罐:。javassl

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import java.io.IOException;
import java.net.MalformedURLException;

import org.apache.commons.io.IOUtils;

class javassl {

public static void main(String args[]){

    String urlStr = new String("https://www.example.com/");

    URL url;

    HttpURLConnection httpConn;

    InputStream inStream;

    byte[] bytesData;

    try {
        url = new URL(urlStr);

        try {
            httpConn = (HttpURLConnection) url.openConnection();
            httpConn.setReadTimeout(5000);
            httpConn.setConnectTimeout(5000);
            if(httpConn.getResponseCode() == 200){

                inStream = httpConn.getInputStream();
                bytesData = IOUtils.toByteArray(inStream);

                System.out.println("Got 200 OK bytes " + bytesData.length);

            }

        } catch (IOException e) {

        }

    } catch(MalformedURLException e) {

    }

}

}
于 2018-01-19T15:25:43.253 回答
0

它的工作原理如下:

因为真正的 url 是使用 https 协议在目的地设置的,所以在代码中,我使用带有云主机(https)和端口的 url 更新我的代码,然后它就可以工作了。

于 2018-01-22T18:56:14.223 回答