c# web客户端无法从https协议获得响应

本文关键字:协议 响应 https web 客户端 | 更新日期: 2023-09-27 17:55:07

当我试图通过https从服务器加载html时,它返回一个错误代码500:但是当我在浏览器中打开相同的链接时,它工作得很好:有任何方法可以做到这一点吗?我正在使用Webclient并向服务器发送useragent信息:

HttpWebRequest req1 = (HttpWebRequest)WebRequest.Create("mobile.unibet.com/";); 
req1.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
var response1 = req1.GetResponse();
var responsestream1 = response1.GetResponseStream();

c# web客户端无法从https协议获得响应

David是正确的,这通常发生在服务器期望一些未通过的标头时,在您的情况下Accept

这段代码现在可以工作了

string requestUrl = "https://mobile.unibet.com/unibet_index.t";
var request = (HttpWebRequest)WebRequest.Create(requestUrl);
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.UserAgent = "//Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
using (var response = request.GetResponse() as HttpWebResponse)
{
 using (var sr = new StreamReader(response.GetResponseStream()))
 {
           var responsestring = sr.ReadToEnd();
       if (!string.IsNullOrEmpty(responsestring))
       {
    Console.WriteLine(responsestring);
           }
  }
 }

这应该是一个评论,但是评论中没有足够的空间容纳所有的问题…我认为这个问题没有足够的信息来自信地回答。

500错误表示服务器有问题。简短的回答是浏览器发送了一些WebClient没有发送的内容。

WebClient可能没有发送服务器期望的标头。服务器需要身份验证吗?这是一个与你签订合同的公司的页面,它可能为你提供了凭据或API密钥,你需要添加HTTP授权吗?

如果这是你和你有合作关系的公司一起做的事情,你应该能够让他们帮助你追踪为什么你会得到一个500错误。否则,您可能需要向我们提供代码示例和更多细节,以便我们提供更多建议。