1

使用 TCP 客户端进行 http post。我得到的结果与异常不同。没有 HTTP 200 好的...

这是我的要求:

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Host:www.mywebsite.com
Connection: Keep-Alive
Cache-Control: max-age=0

这是我的回应:

HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://somewhere.com (url changed)
Content-Length: 0
Date: Fri, 03 Aug 2012 10:38:14 GMT

它告诉我重定向到“位置”。下一个请求应该是对http://somewhere.com的 GET并引用 www.mywebsite.com ?

另一种情况是 https 链接。它通常与 HostEntry 返回的 IP 完全不同。如何获得IP?c# 有简单的方法吗?

4

1 回答 1

4

是的,302 表示 url 不在您想要的位置(主机可能已经移动它,或者更喜欢您使用 www 而不是顶点)。因此,只需对新 URL 使用 HTTP GET。

就IP地址而言,恐怕不是那么简单,一个主机名可以有多个IP地址

string stackoverflow= "stackoverflow.com"
IPAddress[] addresslist = Dns.GetHostAddresses(stackoverflow);

foreach (IPAddress theaddress in addresslist)
{
   Console.WriteLine(theaddress.ToString());
}

使用多个 IP 的情况很多(主要是负载平衡情况)。

于 2012-08-03T11:03:57.623 回答