2013-09-21 3 views
2

나는 HttpPost 요청을 보내려고하고, 그리고 내가 이해에서이 작업을 수행하려면 다음을 수행하십시오변경의 NameValuePair separater ':'

  HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost post = new HttpPost(uri[0]); 
      try { 
       List<NameValuePair> nvp = new ArrayList<NameValuePair>(); 
       nvp.add(new BasicNameValuePair("{\"UserName\"", "\"michigan\"")); 
       nvp.add(new BasicNameValuePair("\"Password\"", "\"fanaddicts\"")); 
       nvp.add(new BasicNameValuePair("\"DeviceHarwareId\"", "\"NW58xfxz/w+jCiI3E592degUCL4=\"")); 
       nvp.add(new BasicNameValuePair("\"DeviceTypeId\"", "\"1\"}")); 
       post.setEntity(new UrlEncodedFormEntity(nvp)); 

       response = httpClient.execute(post); 

       Log.i("Feed Response", "Feed: " + response.getStatusLine().getStatusCode()); 

      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

나는 데 문제를 기업은 다음과 같습니다이다 :

[{"UserName"="michigan", "Password"="fanaddicts", "DeviceHarwareId"="NW58xfxz/w+jCiI3E592degUCL4=", "DeviceTypeId"="1}] 

하지만 인해 서버가 설정되는 방식으로, 내가 같이 할 필요

:

[{"UserName":"michigan", "Password":"fanaddicts", "DeviceHarwareId":"NW58xfxz/w+jCiI3E592degUCL4=", "DeviceTypeId":"1}] 

등호 (=) 기호 대신 키/값 쌍을 구분하는 콜론 (:)이 있습니다.

내 질문은 : 어떻게 수정합니까?

+1

UrlEncodedFormEntity 대신 [JSONObject] (http://developer.android.com/reference/org/json/JSONObject.html) 사용을 고려하십시오. URL 인코딩 된 문자열이 아닌 JSON 문자열을 원하는 것처럼 보일 수 있습니다. – jedwards

+1

@ jedwards : 이것을 답으로 쓰지 않는 이유는 무엇입니까? – gunar

+0

@jedwards 귀하의 의견을 대답하고 받아 들일 것입니다. 그것은 효과가 있었다. 좋은 생각이야. 감사. – BlackHatSamurai

답변

1

UrlEncodedFormEntity 대신 JSONObject을 사용하는 것이 좋습니다. URL 인코딩 된 문자열이 아닌 JSON 문자열을 원하는 것처럼 보일 수 있습니다.

관련 문제