前短时间做项目遇到 调用java写的 webservice .添加认证头(SOAPHeader) 。试过很多种方法没有解决,查了很多资料,试了好几种方案 都没有奏效。最终只能通过HttpWebRequest的方式解决了这个问题。 大家遇到类似问题会有所帮助。
1.使用SoapUI工具 获取到需要传入的报文 把需要传入的头部拼装到报文中,CreateParam 方法是组装需要传入的报文
2.返回的报文 很复杂 ,需要做特殊处理 可以用 SelectSingleNode 函数获取需要的内容。
public static string CreateRequest(string strAction, string postUrl, string sessionId, string strjson)
{
//动态获取URL
string url = FacadeWebservice.DynamicWebserverUrl(postUrl);
//获取传入的XML
string strParam = RequestHelper.CreateParam(strAction, sessionId, strjson);
Logger.SaveLogNoFormat(strAction +"调用参数" + DateTime.Now.ToString("yyyyMMdd") + ".log", strParam);
try
{
string responseString = "";
// 创建HttpWebRequest对象