Почему мой запрос URL возвращает код ошибки 400? - PullRequest
0 голосов
/ 22 октября 2018
String jsonOutput = null;
        String urlStr = null;
        try {
            String encodedInputText = "query={\"query\":\"" +URLEncoder.encode(question, "UTF-8") + "\"";
            if(sku !=null){
                encodedInputText += ",\"sku\":\"" + sku + "\"}";
            }
            urlStr = Parameters.getStsWebserviceURL();
            URL url = new URL(urlStr + encodedInputText);
            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF8"));
            jsonOutput = in.readLine();
            in.close();
            LOGGER.info("{} {} is computed by sts {}", sku, question, urlStr);
        }catch(IOException e){
...  
}

Кодированный текст:

{"query":"这款是大一匹的呀","sku":"4265252"}

Кодированное строковое значение url:

http://xx.xx.92.203/gt/shortTextSearch?query={"query":"%E8%BF%99%E6%AC%BE%E6%98%AF%E5%A4%A7%E4%B8%80%E5%8C%B9%E7%9A%84%E5%91%80","sku":"4265252"}

Если я вставлю этот URL в браузер Chrome, он вернет результаты в видеожидается.Но в приведенном выше коде создается исключение IOException с сообщением:

java.io.IOException: Server returned HTTP response code: 400 for URL: http://xx.xx.203/gt/shortTextSearch?query={"query":"%E8%BF%99%E6%AC%BE%E6%98%AF%E5%A4%A7%E4%B8%80%E5%8C%B9%E7%9A%84%E5%91%80","sku":"4265252"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...