从Lambda访问HTTPS站点时出现错误:javax.net.ssl.SSLHandshakeException

时间:2017-11-14 23:16:16

标签: json ssl lambda java-8 ioexception

我正在为Alexa(亚马逊)开发自定义技能,并且我在JAVA 8中编写了lambda AWS服务的技能。我正在尝试从我的ask2decide API获得一个简单的响应,但它无法正常工作。

基本上我正在执行以下代码:

String questiont = "casco"
String queryString = 
        String.format("https://www.ask2decide.com/api/prod/search.php?s=%s", questiont);

    InputStreamReader inputStream = null;
    BufferedReader bufferedReader = null;
    StringBuilder builder = new StringBuilder();
    try {
        String line;
        URL url = new URL(queryString);
        inputStream = new InputStreamReader(url.openStream(), Charset.forName("US-ASCII"));
        bufferedReader = new BufferedReader(inputStream);
        while ((line = bufferedReader.readLine()) != null) {
            builder.append(line);
            System.out.println(line);
        }
    } catch (IOException e) {
        // reset builder to a blank string
        System.out.print("ERROR:");
        System.out.println(e);

    } finally {
        IOUtils.closeQuietly(inputStream);
        IOUtils.closeQuietly(bufferedReader);
    }

执行它的结果如下

  

错误:“javax.net.ssl.SSLHandshakeException:远程主机已关闭   握手期间的连接“

注意:如果我在Chrome中执行URL而没有任何错误,我会获得一个JSON标准数组。

注2:导入:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.*;
import javax.net.ssl.*;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.amazon.speech.slu.Intent;
import com.amazon.speech.slu.Slot;
import com.amazon.speech.speechlet.IntentRequest;
import com.amazon.speech.speechlet.LaunchRequest;
import com.amazon.speech.speechlet.Session;
import com.amazon.speech.speechlet.SessionEndedRequest;
import com.amazon.speech.speechlet.SessionStartedRequest;
import com.amazon.speech.speechlet.SpeechletV2;
import com.amazon.speech.speechlet.SpeechletResponse;
import com.amazon.speech.json.SpeechletRequestEnvelope;
import com.amazon.speech.ui.OutputSpeech;
import com.amazon.speech.ui.PlainTextOutputSpeech;
import com.amazon.speech.ui.SsmlOutputSpeech;
import com.amazon.speech.ui.Reprompt;
import com.amazon.speech.ui.SimpleCard;
import com.amazonaws.util.json.JSONArray;
import com.amazonaws.util.json.JSONException;
import com.amazonaws.util.json.JSONObject;
import com.amazonaws.util.json.JSONTokener;

0 个答案:

没有答案