有一个外部网络服务,我的页面在 .NET 网络表单中。
我需要从我的页面通过 POST 传递参数调用这个 web 服务。
其中一些参数我需要在后面的代码中填写。包括一个input type="file"
.
我的问题是:
如何使用 POST 方法将请求发布到网络服务?
是否可以通过代码隐藏,或者我必须通过 JavaScript 提交?
基于 Marvin 和 David 的回答评论:
可以通过使用WebClient
or HttpWebRequest
。据我了解,WebClient 继承了 HttpWebRequest,提供了更简单的编码方式。
一些例子:
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
参考:使用 System.Net.WebClient 发送 HTTP POST
string postData = Console.ReadLine();
using (System.Net.WebClient wc = new System.Net.WebClient())
{
wc.Headers.Add("Content-Type","application/x-www-form-urlencoded");
// Upload the input string using the HTTP 1.0 POST method.
byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(postData);
byte[] byteResult= wc.UploadData("http://targetwebiste","POST",byteArray);
// Decode and display the result.
Console.WriteLine("\nResult received was {0}",
Encoding.ASCII.GetString(byteResult));
}
参考:在 C# 中使用 WebClient.DownloadString 发送 POST
StackOverflow 中的其他参考:
.NET:WebBrowser、WebClient、WebRequest、HTTPWebRequest...啊!
WebClient 与 HttpWebRequest/HttpWebResponse