/// <summary>
/// 请求JAVA接口带SOAP验证
/// </summary>
/// <param name="URL"> 请求URL</param>
/// <param name="MethodName"> 请求方法名 </param>
/// <param name="Pars"> 请求方法参数 </param>
/// <returns> string</returns>
public static string GetData( String URL, String MethodName, Hashtable Pars)
{
try
{
String xml = "<?xml version='1.0' encoding='utf-8'?>" ;
xml += "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
xml += "<soapenv:Header>" ;
xml += "<wsse:Authentication xmlns:wsse=\"http://handler.com\">" ;
xml += "<wsse:Username>toone</wsse:Username>" ;
xml += "<wsse:Password>111111</wsse:Password>" ;
xml += "</wsse:Authentication>" ;
xml += "</soapenv:Header>" ;
xml += "<soapenv:Body>";
xml += String.Format("<{0} xmlns=\"http://services.mmc.com\">" , MethodName);
foreach (System.Collections.DictionaryEntry ht in Pars)
{
xml += String.Format("<{0} xmlns=\"\">{1}</{0}>" , ht.Key, ht.Value);
}
xml += "<languageType>.net</languageType>" ;
xml += String.Format("</{0}>" , MethodName);
xml += "</soapenv:Body>";
xml += "</soapenv:Envelope>" ;
HttpWebRequest req = (HttpWebRequest )WebRequest.Create( String.Format("{0}/{1}" , URL, MethodName));
req.Headers.Add( "SOAPAction", URL);
req.ContentType = "text/xml;charset=\"utf-8\"" ;
req.Accept = "text/xml";
req.Method = "POST";
//是否和请求一起发送
req.UseDefaultCredentials = true;
//写数据信息的流对象
using (StreamWriter swMessages = new StreamWriter(req.GetRequestStream()))
{
//写入的流以XMl格式写入
swMessages.Write(xml);
//关闭写入流
swMessages.Close();
}
HttpWebResponse res;
try
{
res = ( HttpWebResponse)req.GetResponse();
}
catch (WebException ex)
{
res = ( HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("utf-8" ));
String strHtml = sr.ReadToEnd();
return strHtml;
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
}
调用 方法
string url = "http://192.168.1.31:8080/webapi/services/StudentService" ;
Hashtable ht = new Hashtable();
ht.Add( "name", "xiaoming" );
this.richTextBox1.Text=GetData(url, "getXmlDataByName" , ht);