我有一个使用SOAP UI测试过的项目文件。
现在我想将其写在客户端,因此通过查看此solution,我试图使事情起作用。但是我有一个问题。
在解决方案中,提到了URL
和action
。我有一个URL
,但不确定action URL
是什么。所以我把两者都放了。
var _url = "http://111.111.111.1:111/HES/services/DoCommandRequest";
var _action = "http://111.111.111.1:111/HES/services/DoCommandRequest";
XmlDocument soapEnvelopeXml = CreateSoapEnvelope();
HttpWebRequest webRequest = CreateWebRequest(_url, _action);
InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);
// begin async call to web request.
IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);
// suspend this thread until call is complete. You might want to
// do something usefull here like update your UI.
asyncResult.AsyncWaitHandle.WaitOne();
// get the response from the completed web request.
string soapResult;
using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult))
{
using (StreamReader rd = new StreamReader(webResponse.GetResponseStream()))
{
soapResult = rd.ReadToEnd();
}
Console.Write(soapResult);
}
运行代码后,我在using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult))
遇到了一个异常
System.Net.WebException {“远程服务器返回错误:(500)内部服务器错误。”}
我相信我的action
有问题,但是我不确定。
任何帮助将不胜感激。
答案 0 :(得分:0)
SOAPAction 在 SOAP 1.1 中是必需的,但可以为空 ("")。 See the comment here
首先,您应该尝试使用指向 wsdl 文件的链接创建新的 SOAP 项目。之后尝试从 SOAP UI 请求。尝试运行“doCommand”操作。看看结果。比您可以将它与您的应用程序的请求进行比较。您还可以使用 Fiddler 来插入您的请求并进行比较以找出不同之处。