gpt4 book ai didi

Android url.openstream 给出了太多的重定向 IOException

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

我似乎无法弄清楚这一点。我正在加载一个只有一个重定向的 URL,当只有一个重定向时 Android 会抛出“太多重定向”,并且它在浏览器中工作。这是一个简化的代码 fragment :

URL url = null;
InputStream in;
String pic_url = "http://www.cdn.sherdog.com/image_crop/200/300/_images/fighter/20100221121302_bader.JPG";
try { url = new URL(pic_url); }
catch (MalformedURLException e1) { Log.d("iTrackMMA","URL had exception malformedURLEx on: " + pic_url); }

try { in = url.openStream(); }
catch (IOException ioe) { Log.d("iTrackMMA","URL had IOException on: " + pic_url + " with error: " + ioe.getMessage()); }

错误:

07-28 21:57:38.017: URL had IOException on: http://www.cdn.sherdog.com/image_crop/200/300/_images/fighter/20100221121302_bader.JPG with error: Too many redirects

如果我使用重定向到的 URL 来切断任何重定向,即使似乎没有任何重定向,我仍然会收到相同的错误?

URL url = null;
InputStream in;
String pic_url = "http://m.sherdog.com/image_crop.php?image=http://www.cdn.sherdog.com/_images/fighter/20100221121302_bader.JPG&&width=200&&height=300";
try { url = new URL(pic_url); }
catch (MalformedURLException e1) { Log.d("iTrackMMA","URL had exception malformedURLEx on: " + pic_url); }

try { in = url.openStream(); }
catch (IOException ioe) { Log.d("iTrackMMA","URL had IOException on: " + pic_url + " with error: " + ioe.getMessage()); }

错误:

07-28 21:48:31.337: URL had IOException on: http://m.sherdog.com/image_crop.php?image=http://www.cdn.sherdog.com/_images/fighter/20100221121302_bader.JPG&&width=200&&height=300 with error: Too many redirects

我错过了什么?它对其他人也这样做吗?我想知道此 URL 是否存在不符合 HTML 的内容,如果是,我希望找到一个解决方法,以便 Android 能够很好地处理它。

感谢您的任何见解。

最佳答案

由于服务器正在抛出一个重定向,它显然正在运行某种请求过滤——这可能质量有问题(很有可能)。

仅仅因为它在浏览器中工作并不意味着它可以直接使用 URL#openStream() - 您可能不得不欺骗该服务,您实际上是一个普通的网络浏览器。

对于您的情况,请尝试执行以下操作:

try {
URL url = new URL(pic_url);
URLConnection conn = url.openConnection();
// Spoof the User-Agent of a known web browser
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
in = conn.getInputStream();
} catch (MalformedURLException e) {
// Error handling goes here
} catch (IOException e) {
// Error handling goes here
}

关于Android url.openstream 给出了太多的重定向 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705000/

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