2010-09-14 20 views
1

我使用HttpWebRequest發送請求而不使用瀏覽器,但我總是從這個舊學校的cgi論壇得到這個回覆:「重複線程」。我很確定線程不是重複的,因爲它是我第一次發送它。我猜測論壇軟件正在檢測我的線程不常見的情況,就像機器生成的一樣。我能做什麼?我的汽車論壇線程生成器使用HttpWebRequest有什麼問題?

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

如果目標腳本嘗試檢查UserAgent HTTP標頭以確定請求是否由瀏覽器進行,則可以嘗試使用有效值填充HttpWebRequest.UserAgent property。至少有一次這對我有效。

還有許多其他HTTP標頭可以設置爲使目標腳本認爲它正在被瀏覽器而不是程序點擊。

檢出可以設置的任何HTTP標頭屬性。有關更多信息,請參見HttpWebRequest Properties

1
myRequest.ContentType = "application/x-www-form-urlencoded"; 
string postData = "name=ZhuangNan&usrpwd=aaa&subject=whatisthis&body=abcabcabcabc"; 

不是MIME/baseenc數據?