我正在尝试与Web服务进行交互。我发布SOAP Evelolpe并返回SOAP响应。
我可以使用Web请求和响应发布到服务并获取响应。但我想使用WCF执行此操作。有些人可以帮助我实现这个目标。
我的HTTP帖子:
public string HttpPost (string uri, string parameters)
{
WebRequest webRequest = WebRequest.Create (uri);
webRequest.ContentType = "application/soap+xml; charset=utf-8";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes (parameters);
Stream os = null;
try
{ // send the Post
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write (bytes, 0, bytes.Length); //Send it
}
try
{ // get the response
WebResponse webResponse = webRequest.GetResponse();
if (webResponse == null)
{ return null; }
StreamReader sr = new StreamReader (webResponse.GetResponseStream());
return sr.ReadToEnd ().Trim ();
}
return null;
}
答案 0 :(得分:3)
基本上,你需要的是:
(url of your service)?wsdl
)下一步:从Visual Studio中创建项目,然后右键单击解决方案资源管理器中的References
,然后从上下文菜单中选择Add Service Reference
。
在对话框中键入URL(带?wsdl
),或键入存储WSDL / XSD文件的磁盘路径。
这将向您的项目添加该服务的WCF服务引用。您现在应该在Service Reference
下面有一个条目 - 在您看到的内部,有几个隐藏文件,其中包含现在调用该服务所需的所有生成代码。
基本上,其中一个文件应该被称为(name of your service)Client
- 它位于您添加服务引用时定义的名称空间中(默认为ServiceReference1
)。使用该命名空间,您现在应该能够创建该WCF客户端:
using ServiceReference1; // or whatever you called this namespace
public void CallService()
{
YourServiceNameClient client = new YourServiceNameClient();
client.YouShouldSeeServiceMethodsHere();
}
使用此WCF客户端,您应该能够轻松地调用服务方法,并将参数(字符串等)传递给这些方法,并且还可能从该服务获取响应(作为字符串或类)方法