2012-08-03 2 views
0

Использование TCP-клиента для http-сообщения. Я получаю другой результат, кроме исключения. Нет HTTP 200 OK ...Получите IP-адрес конечной точки по адресу

Вот мой запрос:

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 

Сво сказать мне, чтобы перенаправить к "Location". Следующий запрос должен быть GET до http://somewhere.com со ссылкой на www.mywebsite.com?

Другой сценарий - это https-ссылка. Часто это IP-адрес, отличный от HostEntry. Как получить IP? Есть ли простой способ в C#?

ответ

4

Да, 302 означает, что URL-адрес не находится в нужном месте (хост, возможно, переместил его, или предпочитает использовать www вместо вершины). Поэтому просто используйте HTTP GET для нового URL.

С точки зрения IP-адрес, я боюсь его не так просто, вы можете иметь несколько IP-адресов для хоста

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

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

Там много ситуаций, в которых используется более чем один IP (в основном условия балансировки нагрузки).

+0

В моем случае там нет ip из HostEntry, который соответствует ссылке ssl ip (используется wirehark) ... –

+0

на оригинальном или на 302-м хосте? –

+0

оба ............. –

Смежные вопросы