Dot-Net

使用 System.Net.WebClient 發送 HTTP POST

  • November 22, 2011

是否可以使用 System.Net.WebClient 發送帶有一些表單數據的 HTTP POST?

如果沒有,是否有另一個庫像 WebClient 可以做 HTTP POST?我知道我可以使用 System.Net.HttpWebRequest,但我正在尋找不那麼冗長的東西。

希望它看起來像這樣:

Using client As New TheHTTPLib
   client.FormData("parm1") = "somevalue"
   result = client.DownloadString(someurl, Method.POST)
End Using

根據@carlosfigueira 的回答,我進一步研究了 WebClient 的方法並找到了UploadValues,這正是我想要的:

Using client As New Net.WebClient
   Dim reqparm As New Specialized.NameValueCollection
   reqparm.Add("param1", "somevalue")
   reqparm.Add("param2", "othervalue")
   Dim responsebytes = client.UploadValues(someurl, "POST", reqparm)
   Dim responsebody = (New Text.UTF8Encoding).GetString(responsebytes)
End Using

關鍵部分是這樣的:

client.UploadValues(someurl, "POST", reqparm)

它發送我輸入的任何動詞,它還幫助我創建正確的 url 編碼的表單數據,我只需將參數作為 namevaluecollection 提供。

引用自:https://stackoverflow.com/questions/8222092