2013-07-25 2 views
0

가 나는 REST 서비스에 대한 포스트 방법을 할 노력하고있어,하지만 난 서버에서 어떠한 응답을받지 못했습니다 반환POST 기능은 빈 응답

public JSONObject postValues (String strUrl, String strJsonArray) throws Exception{ 
    JSONObject jsonObject = null; 
    URL url = new URL(strUrl); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setReadTimeout(10000); 
    conn.setConnectTimeout(15000); 
    conn.setDoOutput(true); 
    conn.setDoInput(true); 
    conn.setRequestMethod("POST"); 
    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

    strJsonArray = "data=" + strJsonArray; 

    Log.e("result",""+strJsonArray); 

    OutputStream os = conn.getOutputStream(); 
    os.write(strJsonArray.getBytes()); 
    os.flush(); 

    conn.connect(); 

    if (conn.getResponseCode() != 200) { 
     throw new RuntimeException("Failed : HTTP error code : " 
       + conn.getResponseCode()); 
    } 

    BufferedReader br = new BufferedReader(new InputStreamReader(
      (conn.getInputStream()))); 

    String output; 
    StringBuilder sb = new StringBuilder(); 

    System.out.println("Output from Server .... \n"); 
    while ((output = br.readLine()) != null) { 
     Log.e("output",output); 
     sb.append(output); 

    } 

    Log.e("output",sb.toString()); 
    jsonObject = new JSONObject(sb.toString()); 

    conn.disconnect(); 

    return jsonObject; 

} 

내 로그 캣는 GET 볼 때 :

output {} 

google 크롬의 "고급 REST 클라이언트"플러그인을 사용하고 있기 때문에 서버가 올바르게 작동하고 있다는 것을 알고 있습니다.

{"message":"OK","code":200} 

을하지만 내 기능을 사용하려고하면, 내 strJsonArray가 삽입되어 있지만 서버에서 빈 응답을 얻을 : 나는 (물론 플러그인을 사용하여) 수동으로 URL을 호출하면 내가 원하는 답변을 얻을.

내 코드에 문제가 있습니까? 당신은 전송 및 에뮬레이터와 크롬 나머지 클라이언트를 사용하여 서버로부터 수신 된 패킷을 캡처 와이어 샤크를 사용할 수

모든 것이 좋아 보인다

+1

모두보기 좋아 ... Wireshark를 사용하여 에뮬레이터와 크롬 휴식 클라이언트를 사용하여 서버와주고받은 패킷을 캡처 할 수 있습니다. 그럼 당신은 그들을 비교할 수 있고 어쩌면 무엇이 잘못되었는지 찾아 낼 수 있습니다. 오류 스트림에서 뭔가가 있는지 확인할 수도 있습니다 ('conn.getErrorStream()'). –

+0

답장을 보내 주셔서 감사합니다. 코드에는 아무런 문제가 없습니다. 문제는 서버에 있습니다. 도와 줘서 고마워. :) – kiduxa

+0

좋아, :) 나는 대답으로 코멘트를 게시 했으므로 받아 들일 수있다;) –

답변

1

.... 그럼 당신은 그들을 비교할 수 있고 어쩌면 무엇이 잘못되었는지 찾아 낼 수 있습니다.

오류 스트림 (conn.getErrorStream())에서 뭔가가 있는지 확인할 수도 있습니다.