我試圖弄清楚自己,但我無法得到任何有用的解決方案。我想向網站發送請求並獲取處理結果。我已經遇到了一個問題(請參閱How do I fill in a website form and retrieve the result in C#?),但我可以通過該網站所述的網站解決問題。現在,我想用下面的代碼來訪問另一個網站(http://motif-x.med.harvard.edu/motif-x.html):遠程服務器返回錯誤:(500)內部服務器錯誤。 GetRequest()C#
ServicePointManager.Expect100Continue = false;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://motif-x.med.harvard.edu/cgi-bin/multimotif-x.pl");
request.Credentials = CredentialCache.DefaultCredentials;
request.ProtocolVersion = HttpVersion.Version10; // Motif-X uses HTTP 1.0
request.KeepAlive = false;
request.Method = "POST";
string motives = "SGSLDSELSVSPKRNSISRTH";
string postData = "fgdata=" + motives + "&fgcentralres=S&width=21";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "multipart/form-data";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
這使我有以下異常:
The remote server returned an error: (500) Internal Server Error.
有什麼可以做,以避免這種情況?
文本區域爲數據集:SGSLDSELSVSPKRNSISRTH
中心人物(在基本選項):S
你會得到如果你想進行手動輸入到網站
重定向到結果的網站 - 可能需要一段時間才能處理。這可能是這個例外的原因嗎?
設置'System.Net.ServicePointManager.Expect100Continue' [不適用於HTTP 1.0請求](http://msdn.microsoft.com/zh-cn/library/system.net.servicepointmanager.expect100continue.aspx) :「即使此屬性設置爲true,100繼續行爲也不用於HTTP 1.0請求。」 – Filburt
對不起,這條線是從我發現HTTP 1.0屬性之前。請忽略它。 – Anna
我試過網頁表單,結果不僅僅是一個重定向,而是一個彈出窗口/新窗口。我不確定HttpWebRequest是否可以處理這個問題,或者如果這可能導致服務器端發生錯誤。 – Filburt