无法下载图像(状态= 400)(与SSL或用户代理无关)

时间:2017-03-10 13:31:32

标签: java netty asynchttpclient

我正在尝试从Java代码下载图像。我的代码已经很好地处理了大量其他图像,但是这个图像拒绝下载。

我确定图片存在,并且我可以在浏览器中查看它:http://lemonde-emploi.blog.lemonde.fr/files/2017/02/La-Ru%C3%A9e-des-licornes-Hazard.jpg

我使用Play框架WS Scala客户端下载图像。它只是Java着名的AsyncHttpClient与Netty实现的包装器。

我正在运行以下代码,这些代码适用于许多其他图片,但仅针对此代码失败:

    WS
      .url(url)
      .withQueryString(queryString: _*)
      .withHeaders("User-Agent" -> "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36")
      .get

我设置了与本地浏览器完全相同的User-Agent,后者成功访问了该图片。

这是调试中的服务器响应:它返回400状态代码。

response

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

遗产" com.ning"图片中的包装显示您仍然在运行AHC1,已经达到使用寿命并且我不再维护。

您最有可能遇到一个与URL编码相关的旧AHC错误,这个错误已经被修复(我检查过AHC2的现代版本可以正常使用您的URL)。

基本上,是时候考虑升级Play / AHC版本了。