Jon*_*ham 4 android content-type http android-async-http
我正在使用来自http://loopj.com/android-async-http/的AsyncHttpClient库,让它可以调用Web服务来检索JSON响应.我现在正试图调用一个Web服务,通过HTTP将文件流回客户端.因此我使用BinaryHttpResponseHandler来捕获返回的byte []数据.但是,每当我尝试调用该方法时它都会失败,并且在检查Throwable对象时,异常是'org.apache.http.client.HttpResponseException:不允许Content-Type!".
我已经尝试根据文档指定允许的内容类型列表,但这并没有什么不同.我主要是流式传输PDF,但理想情况下我不想指定内容类型列表,我希望能够下载任何文件类型.我正在使用的代码如下:
AsyncHttpClient httpClient = new AsyncHttpClient();
String[] allowedContentTypes = new String[] { "application/pdf", "image/png", "image/jpeg" };
httpClient.get(myWebServiceURL, new BinaryHttpResponseHandler(allowedContentTypes) {
@Override
public void onSuccess(byte[] binaryData) {
// ....
}
@Override
public void onFailure(Throwable error, byte[] binaryData) {
// ....
Log.e("Download-onFailure", error.getMessage());
}
});
Run Code Online (Sandbox Code Playgroud)
我还尝试不指定任何内容类型,只使用:
new BinaryHttpResponseHandler()
Run Code Online (Sandbox Code Playgroud)
但这并没有什么区别.
忽略我,BinaryHttpResponseHandler没有任何问题.我从Web服务中提取的文件是PDF,JPG,PNG等,因此我允许使用application/pdf,image/jpeg,image/png的内容类型.但是我使用WireShark来检查返回的HTTP响应标头,发现内容类型实际上是'text/html; 字符集= ISO-8859-1' .一旦我将其添加到允许的内容类型,一切正常.
| 归档时间: |
|
| 查看次数: |
8576 次 |
| 最近记录: |