mah*_*i_m 2 java https http okhttp
我正在使用okhttp库发送请求来休息api.这是我发送请求的java代码https:
RequestBody body = RequestBody.create(JSON, requestBody);
Request request = new Request.Builder().url("https://examplesite.com/json/").post(body)
.addHeader("Accept", "application/json, text/javascript, */*; q=0.01")
.addHeader("Accept-Encoding", "gzip").addHeader("Accept-Language", "en-US,en;q=0.8,fa;q=0.6,ar;q=0.4")
.build();
Response response = client.newCall(request).execute();
String res = new String(response.body().string().getBytes("UTF-8"));
System.out.println(res);
Run Code Online (Sandbox Code Playgroud)
该res变量是:?CU8{$???'L?@R?W*?$??b?H?E?l?K?C? 30??}c&,p??q???)+3?R?28???#SC?
上面文字的编码是什么?
这是响应头:
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,fa;q=0.6,ar;q=0.4
Connection:keep-alive
Content-Length:95
Content-Type:application/json
Run Code Online (Sandbox Code Playgroud)
我无法理解响应体的编码是什么.无论何时我通过邮递员在Chrome上发送请求,响应正文是一个普通的json.参加该协议https,我认为okhttp库处理加密和描述数据.
删除这个:
.addHeader("Accept-Encoding", "gzip")
Run Code Online (Sandbox Code Playgroud)
当你这样做时,你告诉OkHttp你想管理自己的响应压缩.
如果您没有明确配置Accept-Encoding,OkHttp将照顾您.它会将标头添加到请求中,并解压缩响应.
| 归档时间: |
|
| 查看次数: |
3492 次 |
| 最近记录: |