Java Android HTTPUrlConnection响应返回垃圾
下面是我的inputstream头代码Java Android HTTPUrlConnection响应返回垃圾,java,android,httpurlconnection,Java,Android,Httpurlconnection,下面是我的inputstream头代码 mResponseCode = connection.getResponseCode(); mError = mResponseCode != 200 && mResponseCode != 201 && mResponseCode != 202; if (mError) { inputStream = connection.getErrorStream(); } else { inputStream =
mResponseCode = connection.getResponseCode();
mError = mResponseCode != 200 && mResponseCode != 201 && mResponseCode != 202;
if (mError) {
inputStream = connection.getErrorStream();
} else {
inputStream = connection.getInputStream();
}
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
String inputLine;
final StringBuilder builder = new StringBuilder();
while ((inputLine = bufferedReader.readLine()) != null)
builder.append(inputLine);
resultStr = builder.toString();
但是字符串返回的垃圾值如下“���������������}"
响应头包括内容类型:application/json;charset=UTF-8
,因此我尝试添加
inputStreamReader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
但是没有帮助
它在邮递员身上工作得很好,所以我知道这项服务没有什么问题
有人能提供一些帮助吗?一些服务试图通过标题参数压缩它们生成的数据,如: : 要禁用此功能,请尝试设置接受编码:
connection.setRequestProperty("Accept-Encoding", "identity");
如果您想在手机上保存一些传输数据,请使用以下命令:
connection.setRequestProperty("Accept-Encoding", "gzip"); //optional forcing gzip
//...
inputStream = new GZIPInputStream(connection.getInputStream());
//rest of the code
你是指返回的数据吗?你从响应中得到的内容编码是什么?如果你是指对其分块进行编码的transer,内容类型是application/json;charset=UTF-8是的,返回的数据!但这更像是一个编码问题。@Ali谢谢你。显然它是压缩的。是的,在我看来它像是压缩的。至少OP可以确认m如果有压缩头或者这个答案是否有效