如何在没有WebRequest的情况下使用WCF服务?

如何在没有WebRequest的情况下使用WCF服务?,wcf,web-services,soap,Wcf,Web Services,Soap,我正在尝试与web服务接口。我正在发布一个SOAP Evelolpe,它返回一个SOAP响应 我可以使用Web请求和响应发布到服务并获得响应,但我想使用WCF。有人能帮我做到这一点吗 我的HTTP帖子: public string HttpPost (string uri, string parameters) { WebRequest webRequest = WebRequest.Create (uri); webRequest.ContentType = "applicati

我正在尝试与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;
}

基本上,您需要的是:

  • 您可以从中获取WSDL的URL(通常为:
    (您服务的URL)?WSDL
  • 或者从服务提供商处获取WSDL(以及任何支持XSD的)文件,例如作为ZIP或下载
下一步:从Visual Studio创建一个项目,然后右键单击解决方案资源管理器中的
引用
,然后从关联菜单中选择
添加服务引用

在对话框中键入URL(使用
?wsdl
),或键入存储wsdl/XSD文件的磁盘路径

这将向项目中添加对该服务的WCF服务引用。您现在应该在
服务参考
下有一个条目-在您看到的下面有两个隐藏文件,其中包含调用该服务所需的所有生成代码

基本上,其中一个文件应该称为
(服务名称)Client
——它位于添加服务引用时定义的名称空间中(默认为
servicerence1
)。使用该名称空间,您现在应该能够创建该WCF客户端:

using ServiceReference1;  // or whatever you called this namespace

public void CallService()
{
   YourServiceNameClient client = new YourServiceNameClient();

   client.YouShouldSeeServiceMethodsHere();
}

使用此WCF客户端,您应该能够轻松调用服务方法,并将参数(字符串等)传递给这些方法,还可能从该服务方法返回响应(作为字符串或类)。

基本上,您需要的是:

  • 您可以从中获取WSDL的URL(通常为:
    (您服务的URL)?WSDL
  • 或者从服务提供商处获取WSDL(以及任何支持XSD的)文件,例如作为ZIP或下载
下一步:从Visual Studio创建一个项目,然后右键单击解决方案资源管理器中的
引用
,然后从关联菜单中选择
添加服务引用

在对话框中键入URL(使用
?wsdl
),或键入存储wsdl/XSD文件的磁盘路径

这将向项目中添加对该服务的WCF服务引用。您现在应该在
服务参考
下有一个条目-在您看到的下面有两个隐藏文件,其中包含调用该服务所需的所有生成代码

基本上,其中一个文件应该称为
(服务名称)Client
——它位于添加服务引用时定义的名称空间中(默认为
servicerence1
)。使用该名称空间,您现在应该能够创建该WCF客户端:

using ServiceReference1;  // or whatever you called this namespace

public void CallService()
{
   YourServiceNameClient client = new YourServiceNameClient();

   client.YouShouldSeeServiceMethodsHere();
}

使用此WCF客户端,您应该能够轻松调用服务方法,并将参数(字符串等)传递给这些方法,还可能从该服务方法返回响应(作为字符串或类)。

另外,请参阅,请参阅,我希望有时间找到最老的问题,这是一个重复的问题。我想把它添加到TagWiki。我希望我有时间找到最古老的问题,这是一个重复的问题。我会把它添加到标签维基。