不访问使用HTTPS的目标

时间:2018-01-16 20:22:31

标签: ibm-cloud secure-gateway

我已经在我的SG中使用HTTPs协议安装了2个目的地。 1适用于: enter image description here

另一个是: enter image description here

从我的应用程序中,我想像这样访问这两个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"。但是它无法工作。所以任何人都可以帮忙提示?

2 个答案:

答案 0 :(得分:0)

我进一步充实了代码并让它发挥作用。也许这个扩展代码示例将帮助您。我建议在URL参数中输入以https开头但没有端口号的地址,因为它默认为443.您可以使用类似 java -cp commons-io-2.6 / commons-io的类路径运行它-2.6.jar :. 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) {

    }

}

}

答案 1 :(得分:0)

它的工作原理如下:

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