2017-01-13 12 views
-1

여기에 대해 모든 질문을 시도했지만, 모든 요청에 ​​대해 400을 반환하는 코드가 있습니다. 내가 잘못하고있는 것은 아닙니다.HttpURLConnection POST가 400 개의 잘못된 요청을 반환합니다.

HttpURLConnection connection = null; 

InputStream in = null; 

try { 

    URL url = new URL(uri); 

    connection = (HttpURLConnection) url.openConnection(); 

    connection.setReadTimeout(10000); 
    connection.setConnectTimeout(20000); 
    connection.setRequestMethod("POST"); 

    connection.setRequestProperty("Content-type", "application/x-www-form-urlencoded"); 

    connection.setDoInput(true); 
    connection.setDoOutput(true); 

    String query = ""; 

    if (Validator.isNotNull(paramsMap) && !paramsMap.isEmpty()) { 

     Uri.Builder builder = new Uri.Builder(); 

     for (Map.Entry<String, String> entry : paramsMap.entrySet()) { 

      builder.appendQueryParameter(entry.getKey(), entry.getValue()); 
     } 

     query = builder.build().getEncodedQuery(); 
    } 

    if (!query.isEmpty()) { 

     OutputStream os = connection.getOutputStream(); 

     BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 

     writer.write(query); 
     writer.flush(); 
     writer.close(); 

     os.close(); 

    } 

    connection.connect(); 

    int status = connection.getResponseCode(); 

    if (status == 200) { 

     in = connection.getInputStream(); 
    } else { 
     in = connection.getErrorStream(); 
    } 

} finally { 

    connection.disconnect(); 
} 

return in; 
+0

원격 서버의 API 로그에 액세스 할 수 있습니까? 연결 상태를 확인하는 것은 좋아 보이지만 보내려는 내용이나 API가 기대하는 바를 모른 채 계속할 정보가 충분하지 않다고 생각하지 마십시오. –

+0

약 400 개의 상태를 어떻게 이해합니까? – Loc

+0

@MichaelDodd 3 개의 매개 변수, 사용자 이름, 전자 메일 및 grant_type을 포함하고 있으며, 이것이 Uri.Builder와 정확히 똑같습니다. 나는 debbuged했고 올바르게 작동하고 있습니다. –

답변

1

나는 (당신이 POST 요청 (우편 배달부, HttpRequester, 등)을 정확히 알아 내려고 그 중 하나를 사용을 만들 수 꽤 많은 브라우저 플러그인이 존재는 별도의 도구를 사용하여 작업을 진행하려고 할 것이다 그것을 작동 시키려면 POST가 필요합니다. 일단 도구에서 작업하면 Java 코드에서 동일한 작업을 수행 할 수 있습니다.

관련 문제