簡體   English   中英

如何以編程方式將GET / POST請求發送到簡單的ASPX頁面?

[英]How to send GET/POST request programmatically to simple ASPX page?

我使用以下代碼發布querystring

string URI = "http://somewebsite.com/default.aspx";
string myParameters = "param1=value1&param2=value2&param3=value3";
using (WebClient wc = new WebClient())
{
   wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
   string HtmlResult = wc.UploadString(URI, myParameters);
}

但是,以某種方式default.aspx不接受該調用。

關鍵是當我在瀏覽器中手動轉到http://somewebsite.com/default.aspx所有代碼都可以正常工作。

我的問題是,在我手動打開頁面時(與使用WebClient一樣)時,我在這里缺少什么來歸檔相同的結果?

先感謝您!

PS 1

我只是嘗試對該URL使用GET方法,它也沒有任何作用。 這怎么可能? 手動導航到頁面與發送GET / POST有什么區別?

PS 2

我什至嘗試過

wc.Headers["Accept"] = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
            wc.Headers["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC)";

並且沒有擊中Default.aspx的 Load事件。 :(

從您對要實現的目標的描述中,我認為您可能選擇了錯誤的WebClient方法。 而不是UploadString ,請嘗試DownloadString

using (WebClient wc = new WebClient())
{
  string HtmlResult = wc.DownloadString("http://somewebsite.com/default.aspx?param1=value1&param2=value2&param3=value3");
}

所以那個評論是正確的

“手動導航到頁面與發送GET / POST有什么區別?” -自己看看,例如使用Fiddler。 – CodeCaster

我檢查了所有與Fiddler的請求,發現有一些基頁類的代碼重定向到索引頁。 因此,Load事件永遠不會發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM