C #: httpwebrequest - PullRequest
       9

C #: httpwebrequest

0 голосов
/ 22 февраля 2009

Я пытаюсь установить значение параметра referer заголовка httpwebrequest, но выдает ошибку-

Функция, которую я использую (C #):

webRequest.Headers.Set(HttpRequestHeader.Referer, "http://www.microsoft.com");

Ошибка:

Invalid parameters. A required parameter is not found or contains invalid value.

Ответы [ 4 ]

4 голосов
/ 22 февраля 2009

Вот типичное использование:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("");
req.Referer = "http://www.google.com";

Покажите ваш код.

4 голосов
/ 22 февраля 2009

Попробуйте этот метод из MSDN Если вы отправите свой код, я могу вам помочь.

HttpWebRequest    myHttpWebRequest=(HttpWebRequest)WebRequest.Create(myUri);
// Set referer property  to http://www.microsoft.com .
myHttpWebRequest.Referer="http://www.microsoft.com";
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
// Display the contents of the page to the console.
Stream streamResponse=myHttpWebResponse.GetResponseStream();
StreamReader streamRead = new StreamReader( streamResponse );
Char[] readBuffer = new Char[256];
int count = streamRead.Read( readBuffer, 0, 256 );
Console.WriteLine("\nThe contents of HTML page are.......");    
while (count > 0) 
{
    String outputData = new String(readBuffer, 0, count);
    Console.Write(outputData);
    count = streamRead.Read(readBuffer, 0, 256);
}
Console.WriteLine("\nHTTP Request  Headers :\n\n{0}",myHttpWebRequest.Headers);
Console.WriteLine("\nHTTP Response Headers :\n\n{0}",myHttpWebResponse.Headers);    
streamRead.Close();
streamResponse.Close();
// Release the response object resources.
myHttpWebResponse.Close();
Console.WriteLine("Referer to the site is:{0}",myHttpWebRequest.Referer); 
1 голос
/ 22 февраля 2009

Существует несколько зарезервированных заголовков HTTP, которые нельзя установить через webRequest.Headers.Set Referer является одним из них.

Для них всегда есть специальное свойство для установки.

В вашем случае webRequest.Referer = "http://google.com" подойдет.

0 голосов
/ 22 февраля 2009

@ kedar kamthe, вы не можете поместить туда HttpRequestHeader.Referer, потому что он ожидает значение, я верю, но не уверен ... Я думаю, что вы хотели использовать это:

webRequest.Headers.Set ("Referer", "http://www.microsoft.com");

Но вы должны использовать это как пример Криса Балланса. Это должно сработать, но если это не сработает, попробуйте, как я покажу выше;).

Вы должны поместить свой код здесь, чтобы мы могли видеть, что не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...