Android Client에서 서버로 GZIP 압축 JSON을 전송할 때 사용해야 하는 헤더는 무엇입니까?
이 질문은 이 질문의 연장선상에 있습니다.아래 코드를 사용하여 GZIP을 압축합니다.JSONObject.
String foo = "value";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gzos = null;
try {
gzos = new GZIPOutputStream(baos);
gzos.write(foo.getBytes("UTF-8"));
} finally {
if (gzos != null) try { gzos.close(); } catch (IOException ignore) {};
}
byte[] fooGzippedBytes = baos.toByteArray();
사용하고 있다DefaultHttpClient이 압축된 JSONObject를 서버로 보냅니다(코드는 내가 제어할 수 있습니다).
나의 질문
어떤 헤더를 사용해야 합니까?request사용하고 있습니다.request.setHeader("Content-type", "application/json");JSON을 서버로 전송하기 위해?
gzip 인코딩된 데이터를 전송하고 있음을 서버에 통지하려면 Accept-Encoding이 아닌 Content-Encoding 헤더를 전송합니다.
이 답변은 압축된 데이터를 전송하고 있음을 나타내는 헤더를 설정해야 함을 나타냅니다.
HttpUriRequest request = new HttpGet(url);
request.addHeader("Content-Encoding", "gzip");
// ...
httpClient.execute(request);
이 답변은 수신 압축 데이터를 처리하는 방법도 보여줍니다.
Content-Type:application/json- http 콜의 콘텐츠 데이터 유형을 나타냅니다.Content-Encoding: gzip- 어떤 압축이 사용되는지 나타냅니다.
application/json또는text/xml또는 다른 타입은 gzip으로 압축하여 수신자에게 전송하고Content-Type헤더만, 수신기는 착신 데이터의 타입을 식별합니다.json/xml/text그런 다음 json/xml/text 유형의 개체로 다시 변환합니다.
와 함께Content-Encodingheader only receiver는 수신 데이터가 gzip 압축되고 있음을 식별합니다.수신기는 수신 데이터를 압축 해제하고 사용해야 합니다.
언급URL : https://stackoverflow.com/questions/11414987/what-header-should-be-used-for-sending-gzip-compressed-json-from-android-client
'programing' 카테고리의 다른 글
| AngularJS orderBy는 ngOptions의 track by와 함께 작동하지 않습니까? (0) | 2023.03.31 |
|---|---|
| 각도 $q 약속이 해결되었는지 확인하는 방법 (0) | 2023.03.31 |
| 컨트롤러의 Spring Boot @Async 메서드가 동시에 실행되고 있습니다. (0) | 2023.03.31 |
| Travis/Jest:TypeError: 개체 '#'의 읽기 전용 속성 'Symbol(Symbol.toStringTag)'에 할당할 수 없습니다. (0) | 2023.03.31 |
| 모나코 에디터 동적 크기 조정 가능 (0) | 2023.03.31 |