///
<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);