以下代码是在WinForm中完成的:
第一步:先将需要Post的XML写成一个文件,这里写成test.xml,调用的时候将其中的参数修改以下就可以了,以下是一个样本:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetOrderformInfo xmlns="http://samples.com/">
<orderid>00001</orderid>
<leaguerid>0</leaguerid>
<prjtype>4</prjtype>
</GetOrderformInfo>
</soap:Body>
</soap:Envelope>
第二步:CS代码:
/// <summary>
/// 调用WebService的方法
/// </summary>
/// <param name="filename">POST所用文件</param>
/// <param name="requestURL">调用地址</param>
/// <param name="SOAPActionURL"></param>
/// <returns></returns>
private string Post(string filename,string requestURL,string SOAPActionURL)
{
XmlDataDocument doc = new XmlDataDocument();
doc.Load(filename);
byte[] data = System.Text.Encoding.UTF8.GetBytes(doc.OuterXml);
WebRequest request = WebRequest.Create(requestURL);
request.Method = "POST";
request.Headers.Add("SOAPAction", SOAPActionURL);
request.Headers.Add("ContentLength", data.Length.ToString());
request.ContentType = "text/xml; charset=utf-8";
Stream OWrite = request.GetRequestStream();
OWrite.Write(data, 0, data.Length);
OWrite.Close();
Stream oRead = null;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
oRead = response.GetResponseStream();
XmlDataDocument resultdoc = new XmlDataDocument();
resultdoc.Load(oRead);
return resultdoc.InnerText.ToString();
}
private void button5_Click(object sender, EventArgs e)
{
string filename = AppDomain.CurrentDomain.BaseDirectory + "xmlfiles/UpdatePaymentInfo.xml";
string requestURL = "http://localhost/samples/test.asmx?op=MyTest";
string SOAPActionURL = "http://samples.com/MyTest";
/*这里可以增加修改XML文件参数的代码....*/
richTextBox1.Text = Post(filename, requestURL, SOAPActionURL).Trim(); //这里调用后显示结果
}
注:XML样本和SOAPAction地址在WebService的请求和响应示例里面有说明
| 昵称 密码 游客无需密码 |
| 网址 电邮 注册 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |







