繁体   English   中英

Fiddler未运行时,服务器返回421 HTTP错误

[英]Server returns 421 HTTP error when Fiddler is not running

我正在为Pixiv构建API,到目前为止,我已经成功完成了登录过程,并且按标签搜索也可以正常工作。

现在,我想在所选网页上下载图像。 起初,我遇到了一些证书错误。 我通过暂时忽略证书验证来解决此问题。

然后发生了一件非常有趣的事情……如果Fiddler在后台运行-成功接收到响应,并且我能够下载图像。 没问题。

但是当Fiddler没有运行时, 远程服务器返回了421错误代码

我已经尝试过的事情:

  • 手动关闭每个响应并使用“ using”语句
  • 强制执行Keep-Alive标头。
  • 明确声明使用HTTP / 1.1
  • 更改HttpWebRequest对象上的代理设置

我的图像请求代码如下所示:

HttpWebRequest imagerequest = (HttpWebRequest)WebRequest.Create(imgLink);
imagerequest.Host = $"i.pximg.net";
imagerequest.UserAgent = USER_AGENT;
imagerequest.Accept = "image/webp,image/*,*/*;q=0.8";
imagerequest.Referer = post.PostLink;
imagerequest.Headers.Add("Accept-Encoding", "gzip, deflate, sdch, br");
imagerequest.Headers.Add("Accept-Language", "en-US,en;q=0.8,sl;q=0.6");

byte[] imagecontent;
using (var imageresponse = (HttpWebResponse)imagerequest.GetResponse())
{
    using (var imagestream = imageresponse.GetResponseStream())
    {
        imagecontent = imagestream.ReadStream();
    }
}

(我也为此发送了一个请求,以获取图像链接)

“ imgLink”的示例:

https://i3.pixiv.net/img-original/img/2014/02/09/00/10/03/41485846_p0.jpg

Fiddler显示发送的请求,如下所示:

GET https://i.pximg.net/img-original/img/2014/02/09/00/10/03/41485846_p0.jpg   HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,   like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: image/webp,image/*,*/*;q=0.8
Referer: http://www.pixiv.net/whitecube/user/2824699/illust/41485846
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8,sl;q=0.6
Host: i.pximg.net

Fiddler没有显示任何违反HTTP协议的迹象。

好像我只是瞎子。 imgLink ”在整个时间中都设置了错误的主机名 ,但是我没有注意到它,因为主机名是如此相似。 我猜Fiddler会自动为我修复该问题...

下次,我将确保仔细检查主机名。 感谢您提供的所有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM