2011-05-02 76 views
2

我想寫一個小工具,讓我發送http請求和響應,因爲我在.NET框架中瞭解有關網絡功能的更多信息。如何編寫包含我的Windows Live ID的HttpRequest?

然而,需要的Windows Live ID驗證的網頁打交道時,我無法弄清楚如何寫,包括我的身份驗證信息的請求,這樣我可以檢索網頁的HTML 。我只是以HTML結尾,其中包括用戶名密碼條目爲Windows Live ID

有人能告訴我如何寫一個HttpRequestC#,讓我與使用的Windows Live ID網站身份驗證的樣本?

感謝,

-Craig

+0

也許在Windows窗體應用程序中使用webbrowser組件比使用HttpRequest嘲笑它更容易。在帶有表單帖子的https或網站上使用HttpRequest可能非常難以工作。 – CodingBarfield 2011-05-03 12:25:42

+0

@Barfieldmv:這就是我最終做的,使用WPF瀏覽器控件登錄,然後導航到頁面。不幸的是,這種情況下沒有簡單的API。 – Craig 2011-05-04 18:14:18

回答

0

我相信,你首先需要加載登錄頁面,然後模擬表單提交(通過POST或GET,無論是做),然後店返回的cookie值,以便您可以發送每個請求。

想想這樣 - 當您嘗試拉出所需的頁面時,它來自不同的客戶端(爲簡單起見,請考慮瀏覽器)。您的程序不是Internet Explorer,Firefox或Chrome ...這是它自己的新瀏覽器。如果您在Internet Explorer中登錄Windows LIVE,然後轉到Firefox中的同一頁面,它會讓您再次登錄,對嗎?

那麼,網站知道你是誰的唯一方法就是通過它放在你的機器上的cookies,而這些cookie是瀏覽器特定的。

因此,因爲您實際上是在製作新的瀏覽器,所以您必須存儲創建的cookie(將您鏈接到有效的登錄會話),並在每個請求中發送這些cookie。

+0

@ matt-dawdy:當我嘗試發出GET請求時,我不斷收到Windows Live ID需要JavaScript登錄的回覆。我如何讓它相信JavaScript存在?另外,假設cookie在響應中返回,我如何在代碼中訪問它,以便將它包含在我的下一個GET請求中? – Craig 2011-05-03 00:18:05

+0

你有沒有使用過提琴手?去實現它(夢想);去得到它(東西。安裝它並啓動它。然後,使用IE或Firefox或其他,請登錄到Windows Live。然後看看Fiddler。你應該看到你的登錄請求,你將能夠調查究竟發送了什麼,這真的會幫助你瞭解發生了什麼。你讀過@Ron Harlev的回答嗎?看看他連接的問題和他答案中的其他鏈接。那裏好東西。 – 2011-05-03 01:28:02

+0

對不起,我剛剛看到你評論了Ron的帖子。它已經過時了嗎?好吧,然後回到小提琴手。您將能夠確切地查看發送了什麼請求,何時以及是否POST或GET。這將幫助您瞭解Windows Live的工作方式。 – 2011-05-03 01:29:58

相關問題