Что не так с моим генератором веток авто форума, использующим HttpWebRequest? - PullRequest
1 голос
/ 14 сентября 2010

Я использую HttpWebRequest для отправки запроса без использования браузера, но я всегда получаю ответ от этого старого школьного форума CGI: «дублирующая тема».Я уверен, что ветка не является дубликатом, поскольку я отправляю ее впервые.Я предполагаю, что программное обеспечение форума обнаруживает что-то необычное в моей ветке, так как оно генерируется машиной.Что я могу сделать?

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://pop.6park.com/cgi-bin/know1/mainboard.pl");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
string postData = "name=ZhuangNan&usrpwd=aaa&subject=whatisthis&body=abcabcabcabc";
UTF8Encoding encoding = new UTF8Encoding();
byte[] byte1 = encoding.GetBytes(postData);
myRequest.ContentLength = byte1.Length;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(byte1, 0, byte1.Length);

Ответы [ 2 ]

2 голосов
/ 14 сентября 2010

Если целевой сценарий пытается проверить HTTP-заголовок UserAgent, чтобы определить, выполняется ли запрос браузером, можно попытаться заполнить свойство HttpWebRequest.UserAgent действительным значением.Это сработало для меня, по крайней мере, один раз.

Существует ряд других HTTP-заголовков, которые можно установить, чтобы заставить целевой сценарий думать, что его использует браузер, а не программа.

Проверьте любые свойства HTTP-заголовка, которые можно установить.См. Свойства HttpWebRequest для получения дополнительной информации.

1 голос
/ 14 сентября 2010
myRequest.ContentType = "application/x-www-form-urlencoded";
string postData = "name=ZhuangNan&usrpwd=aaa&subject=whatisthis&body=abcabcabcabc";

Не данные MIME / baseenc?

...