我有一個帶有BackgroundWorker的Winform。除此之外,BackgroundWorker必須對頁面進行HTTP調用,填寫一些數據,提交表單並檢索在「單擊」提交按鈕後返回的HTML。我這樣做遇到了一些障礙:C#/ Winform:輸入數據到HTML頁面,提交表格
- 無法發佈數據,因爲目標web服務器不支持該方法。
- 不能再使用WebClient.UploadValues,因爲Web服務器不支持POST。
- 不能使用WebBrowser控件,因爲BackgroundWorkers吸吮COM Interop並拋出異常,說明它必須位於STA線程中(單線程公寓)
- 無法運行另一個單獨的線程,因爲BW有坐在等待結果,然後才能繼續(不能,或者至少我不知道一種方法來做到這一點,不會崩潰)
- 無法更改線程的ApartmentState,因爲它是一個BackgroundWorker和它拋出如果被告知去STA模式
我應該怎麼做才能解決這個問題?
[編輯]:應用程序入口點已標記爲[STAThread]屬性。
這是一個帶有兩個文本框和一個登錄按鈕的內部應用程序。表單本身有一個javascript事件onClick,強制回發(哇,這很不尋常);如第2點所述,WebClient拋出;一個HttpWebRequest如何與一個有效載荷和不使用POST方法? – tsilb 2008-12-08 20:28:16