Is it possible to send HTTP POST with some form data with System.Net.WebClient?
If not, is there another library like WebClient that can do HTTP POST? I know I can use System.Net.HttpWebRequest, but I'm looking for something that is not as verbose.
Hopefully it will look like this:
Using client As New TheHTTPLib client.FormData("parm1") = "somevalue" result = client.DownloadString(someurl, Method.POST) End Using
Specify a protocol method that permits data to be sent with a request, such as the HTTP POST method: wRequest. Method = "POST"; Get the stream that holds request data by calling the GetRequestStream method.
var url = "https://your-url.tld/expecting-a-post.aspx" var client = new WebClient(); var method = "POST"; // If your endpoint expects a GET then do it. var parameters = new NameValueCollection(); parameters. Add("parameter1", "Hello world"); parameters. Add("parameter2", "www.stopbyte.com"); parameters.
The WebClient class provides common methods for sending data to or receiving data from any local, intranet, or Internet resource identified by a URI. The WebClient class uses the WebRequest class to provide access to resources.
Based on @carlosfigueira 's answer, I looked further into WebClient's methods and found UploadValues, which is exactly what I want:
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
The key part is this:
client.UploadValues(someurl, "POST", reqparm)
It sends whatever verb I type in, and it also helps me create a properly url encoded form data, I just have to supply the parameters as a namevaluecollection.
WebClient
doesn't have a direct support for form data, but you can send a HTTP post by using the UploadString method:
Using client as new WebClient result = client.UploadString(someurl, "param1=somevalue¶m2=othervalue") End Using
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With