gpt4 book ai didi

android - URLConnection getInputStream() 和 HttpEntity getContent() 之间的区别

转载 作者:行者123 更新时间:2023-11-29 02:11:26 26 4
gpt4 key购买 nike

我尝试从特定的 url 下载图片,首先我使用这种方式获取 InputStream:

if (url != null) {
URLConnection ucon = null;
try {
ucon = url.openConnection();
} catch (IOException e2) {
e2.printStackTrace();
}

if (ucon != null) {
ucon.setConnectTimeout(CONN_TIMEOUT);
ucon.setReadTimeout(READ_TIMEOUT);
try {
is = ucon.getInputStream();

效果很好,但是当我尝试从 http://111.12.12.232/images/face/bigface/339.gif 下载图片时我无法获取 InputStream,但尝试使用:

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");

HttpProtocolParams.setUseExpectContinue(params, false);
HttpConnectionParams.setConnectionTimeout(params, CONN_TIMEOUT);

HttpConnectionParams.setSoTimeout(params, READ_TIMEOUT);
HttpGet getRequest;
try {
getRequest = new HttpGet(url.toURI());
HttpClient client = new DefaultHttpClient(params);
HttpResponse response = client.execute(getRequest);
HttpEntity entity = response.getEntity();
is = entity.getContent();

这种方式可以成功获取到InputStream,并可以下载gif。

所以我想知道这两种方法有什么不同?谢谢~

最佳答案

looks like服务器返回图像内容,但也返回 404 响应代码,表示在完成请求时出错。

关于 1.6 Sun/Oracle JDK ,当 HttpURLConnection 注意到这样的返回代码并且不尝试返回内容时,它似乎因 IOException 而失败。我的猜测是 Android 平台具有相同的行为,并且您使用的 Apache HttpClient 库对服务器错误配置更加稳健。

关于android - URLConnection getInputStream() 和 HttpEntity getContent() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com