无法从天蓝色读取404错误响应正文

时间:2019-11-18 21:28:33

标签: java azure spring-boot

我正在尝试使用Java应用程序和基本的HTTP客户端读取错误消息的响应正文(404,400,500)。在本地测试时,我可以获得正确的json响应。但是当我部署到Azure时,我得到了HTML标签中的错误响应主体。

部署到天蓝色并从那里进行测试时得到的错误响应:

尝试访问资源时出现

400错误 400错误

@AddLoggerInAppInsights     公共地图exchangeNativeHttpRequest(字符串url,字符串jsonPayLoad,字符串relatedId){

    Map<String,Object> responseMap = null;
    try {

        URL httpUrl = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestProperty("Accept", "application/json");
        conn.setRequestProperty(CLIENT_ID_KEY, System.getenv(CLIENT_ID_VALUE));
        conn.setRequestProperty(CLIENT_SECRET_KEY, System.getenv(CLIENT_SECRET_VALUE));
        conn.setRequestProperty(CORRELATION_ID, correlationId);

        OutputStream os = conn.getOutputStream();
        os.write(jsonPayLoad.getBytes());
        os.flush();
        HttpStatus httpStatus = HttpStatus.valueOf(conn.getResponseCode());
        BufferedReader br = null;
        if (conn.getResponseCode() == org.apache.http.HttpStatus.SC_OK) {
             br = new BufferedReader(new InputStreamReader(
                    (conn.getInputStream())));
        }else if (conn.getResponseCode() == org.apache.http.HttpStatus.SC_BAD_REQUEST){
             br = new BufferedReader(new InputStreamReader(
                    (conn.getErrorStream())));
        }else {
            throw new RuntimeException("Failed : HTTP error code : "
                    + conn.getResponseCode());
        }
        String output;
        StringBuilder sb = new StringBuilder();
        while ((output = br.readLine()) != null) {
            sb.append(output);
        }
        telemetryClient.trackEvent(correlationId+":" +"Response for Create Breakdown IBMI API from HTTP_CONNECTION: "+sb.toString());
         responseMap = new HashMap<>();
         responseMap.put("statusCode",httpStatus);
         responseMap.put("response", sb.toString());
        conn.disconnect();

      } catch (MalformedURLException e) {

          telemetryClient.trackException(e);

      } catch (IOException e) {

          telemetryClient.trackException(e);

     }
    telemetryClient.trackEvent(correlationId+":" +"Returned Response of Create Breakdown IBMI API from HTTP_CLIENT: "+responseMap.toString());
    return responseMap;

}

0 个答案:

没有答案