【发布时间】:2017-08-31 03:21:03
【问题描述】:
我尝试使用带有标题的 volley rquest。我的代码如下:
final String contentType = "text/xml;charset=UTF-8";
Request stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("@@response ", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("@@Error ", error);
}
}) {
@Override
public String getBodyContentType()
{
return contentType;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("Accept-Encoding", "gzip,deflate");
headers.put("Connection", "Keep-Alive");
headers.put("User-Agent", "Apache-HttpClient/4.1.1 (java 1.5)");
return headers;
}
@Override
public byte[] getBody() throws AuthFailureError {
try {
return requestBody.getBytes(getParamsEncoding());
} catch (Exception e) {
Log.i("@@ERROR ", " " + e);
return null;
}
}
};
我的回复看起来像
��������������
I�%&/m�{J�J��t��$ؐ@�H���iG#)�*��eVe]f@�흼��{���{�� ;�N'����?\fdl��J�ɞ!���?~|?"��ez��MQ-?�hw��Q�/�լX^|�Ѻ=�>�� �8z�T����2/�U��+��>��y�����L��"k��>W��]�r7ח�~���k
编码-解码有一些问题。我怎么解决这个问题?如果我注释掉headers.put("Accept-Encoding", "gzip,deflate"),我就能得到准确的回复。
【问题讨论】:
-
@Krish 谢谢。有用。我是否应该检查 Accept-Encoding gzip,deflate 与否。我想使用这些实现发送许多类型的请求。这将是一个通用请求。
-
按照你的服务器实现就好了。
标签: android http-headers xmlhttprequest android-volley