Android StringEntity () 와 UrlEncodedFormEntity () 의 차이
원래 의 생각 에 따라 배경 에 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 () 의 형식 은 자 유 롭 습 니 다. 문자열 만 넣 으 면 형식 에 관 계 없 이 가능 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.