Android StringEntity () 와 UrlEncodedFormEntity () 의 차이

오늘 안 드 로 이 드 클 라 이언 트 가 서버 에 데 이 터 를 제출 하 는 과정 에서 POST 데 이 터 를 조직 할 때 UrlEncodedFormEntity () 라 는 방법 을 사 용 했 지만 배경 이 잘못 되 어 json 내용 을 분석 할 수 없다 고 말 했다.
원래 의 생각 에 따라 배경 에 json 형식의 내용 을 보 냈 는데 그 안에 매개 변수 와 값 이 있 고 배경 프로그램 으로 처리 할 수 있 습 니 다. 형식 은 다음 과 같 습 니 다. "
{"content": "왕 에 른" ℃ 는 건 충 찬 "," townId ":" 14 "," companyId ":" 8 "," date ":" 2014 - 12 - 27 "," supervisor ":" 루 "?," userId ": 0}
그러나 UrlEncodedFormEntity () 방법 으로 조직 한 데 이 터 를 서버 에 보 내 는 것 은 다음 과 같은 형식 입 니 다.
companyId=8&townId=14&date=2014-12-27&supervisor=%E8%B0%A2%E9%95%BF%E5%BB%B7&content=%E5%91%98%E5%B7%A5%E4%B8%9A%E5%8A%A1%E6%B0%B4%E5%B9%B3%E6%9C%89%E5%BE%85%E6%8F%90%E9%AB%98&userId=0
일반적인 키 가 맞 고 제 이 슨 이 아니 기 때문에 배경 에서 받 아들 일 수 없 음 이 분명 합 니 다.
나중에 StringEntity () 방법 으로 데 이 터 를 조직 하면 데이터 의 형식 이 매우 자 유 롭 고 자신 이 원 하 는 모든 형식 으로 구성 하여 문 제 를 해결 할 수 있 습 니 다.
다음은 두 가지 방법의 사용 을 비교 해 보 자.
1. UrlEncodedFormEntity() 
List<NameValuePair> pairs = new ArrayList<NameValuePair>();  
  
NameValuePair pair1 = new BasicNameValuePair("supervisor", supervisorEt.getEditableText().toString());  
NameValuePair pair2 = new BasicNameValuePair("content", superviseContentEt.getEditableText().toString());  
NameValuePair pair3 = new BasicNameValuePair("userId", String.valueOf(signedUser.getId()));  
                  
pairs.add(pair1);  
pairs.add(pair2);  
pairs.add(pair3);  
                  
httpPost.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8))

  • 2. StringEntity()
     
    JSONObject postData = new JSONObject();  
                      
    postData.put("supervisor", supervisorEt.getEditableText().toString());  
    postData.put("content", superviseContentEt.getEditableText().toString());  
    postData.put("userId", signedUser.getId());  
                      
    httpPost.setEntity(new StringEntity(postData.toString(), HTTP.UTF_8));

    이 를 통 해 알 수 있 듯 이 UrlEncodedFormEntity () 의 형식 은 비교적 단일 하고 일반적인 키 쌍 일 뿐 한계 가 상대 적 으로 크다.
    그리고 StringEntity () 의 형식 은 자 유 롭 습 니 다. 문자열 만 넣 으 면 형식 에 관 계 없 이 가능 합 니 다.

    좋은 웹페이지 즐겨찾기