C# 指定的值在WebClient下载时包含无效的HTTP字符

C# 指定的值在WebClient下载时包含无效的HTTP字符,c#,http-headers,webclient,recaptcha,C#,Http Headers,Webclient,Recaptcha,我以前对这个问题做过一些研究。我看了一眼,它对我没有帮助。基本上,我正在尝试建立一个程序来帮助人们使用网站,我需要从谷歌的recaptcha API获取recaptcha V2挑战图像。我不断地得到一份工作 指定的值包含无效的HTTP字符 尝试下载流时 try { WebClientEx wc = new WebClientEx(cookieJar); wc.Headers.Add("Referer", recaptchaframe_url); wc.He

我以前对这个问题做过一些研究。我看了一眼,它对我没有帮助。基本上,我正在尝试建立一个程序来帮助人们使用网站,我需要从谷歌的recaptcha API获取recaptcha V2挑战图像。我不断地得到一份工作

指定的值包含无效的HTTP字符

尝试下载流时

 try
 {
      WebClientEx wc = new WebClientEx(cookieJar);
      wc.Headers.Add("Referer", recaptchaframe_url);
      wc.Headers.Add("UserAgent:", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
      Stream responsestream = wc.OpenRead("http://www.google.com" + challengeimageurl);
 }
 catch (Exception ex)
 {
      MessageBox.Show("This program was unable to download CAPTCHA image" + ex.Message);
 }

通过将webclient中所有手动设置的标题转换为它们的.NET属性,我能够克服这个错误。(例如UserAgernt到HttpRequestHeader.UserAgent。手动设置标题名似乎没有用。

我能够通过将webclient中所有手动设置的标题转换为其.NET属性来克服此错误。(例如UserAgernt到HttpRequestHeader.UserAgent。手动设置标头名称似乎没有用。

我查看了HTTP标头输出,因为我一直在调试,Fiddler告诉我“指定的值具有无效的CRLF字符”从服务器接收响应时。不知道这是否有助于调试问题。我在调试时查看了HTTP头输出,Fiddler在从服务器接收响应时告诉我“指定的值具有无效的CRLF字符”。不知道这是否有助于调试问题。