C# 使用来自WCF服务的POST使用Web服务

C# 使用来自WCF服务的POST使用Web服务,c#,wcf,web-services,http-post,C#,Wcf,Web Services,Http Post,这就是我的情况。我必须从另一个wcf服务中使用第三方web服务(而不是wcf),该服务将作为第一个服务和我的web应用程序之间的中介。问题是,我所看到的几乎每个这样做的示例都要求您向应用程序添加Web/服务引用以生成代理,但我无法添加引用,它返回了一个错误,可能是由于需要某种身份验证 此服务只能由GET或POST使用。我成功地通过web页面中使用jquery的ajax调用使用GET和POST来使用该服务,但我不知道如何从c#中的wcf服务内部使用该服务 来自服务的GET请求示例如下: http:

这就是我的情况。我必须从另一个wcf服务中使用第三方web服务(而不是wcf),该服务将作为第一个服务和我的web应用程序之间的中介。问题是,我所看到的几乎每个这样做的示例都要求您向应用程序添加Web/服务引用以生成代理,但我无法添加引用,它返回了一个错误,可能是由于需要某种身份验证

此服务只能由GET或POST使用。我成功地通过web页面中使用jquery的ajax调用使用GET和POST来使用该服务,但我不知道如何从c#中的wcf服务内部使用该服务

来自服务的GET请求示例如下:

http://webservice.server.com/services/myservice?user=[用户名]&密码=[密码]&值1=[某个值]&值2=[另一个值]

响应是一个带有操作状态代码和状态消息的xml,然后我继续将其保存到数据库中

我该怎么做呢

谢谢你的帮助

解决方案

感谢肖恩为我指明了正确的方向。我是如何做到的:

参考文章:


如果您对我的解决方案、异议或改进有任何意见,欢迎发表。

我想您应该看看HttpRequest类:


如果您不能添加web服务引用(我将进一步调查您为什么不能先添加),恐怕您必须手动添加,使用WebClient类或HttpRequest类手动发出HTTP请求,正如Sean建议的那样

我将为您提供正确的答案,为我指明正确的方向。。。然而,msdn链接并不是很有帮助,实际上我最终使用了HttpWebRequest,因此我将发布我的解决方案,以便其他有类似问题的人可以看到我是如何实际解决这个问题的。谢谢你的帮助!
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "username=" + username;
postData += ("&password=" + password);
postData += ("&value1=" + val1);
postData += ("&value2=" + val2);
byte[] data = encoding.GetBytes(postData);

// Prepare POST web request...
HttpWebRequest myRequest =
  (HttpWebRequest)WebRequest.Create(new Uri("http://webservice.server.com/services/myservice"));
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close();

// Get response  
using (HttpWebResponse response = myRequest.GetResponse() as HttpWebResponse)
{
    // Get the response stream  
    StreamReader reader = new StreamReader(response.GetResponseStream());

    // Read the whole contents and return as a string  
    result = reader.ReadToEnd();
}

XDocument doc = XDocument.Parse(result);

// Read XML