如何使用C#(WCF)转发REST Web服务?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用C#(WCF)转发REST Web服务?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1492字,纯文字阅读大概需要3分钟。
内容图文
![如何使用C#(WCF)转发REST Web服务?](/upload/InfoBanner/zyjiaocheng/654/a50fc39cab2f445a9c8baa2f76733a4c.jpg)
有一个只能通过http使用的Web服务,以及一个只能使用https Web服务的客户端.因此,我需要一些中介来转发https中收到的请求并返回http中的响应.
假设该中介完全是愚蠢的,因为它知道Web服务端点在哪里(即它不知道该服务的签名是什么,它只是知道它可以通过http Web请求与其通信,并在某个https uri上进行监听,并在收到的任何内容上进行转发),最简单的方法是什么?
我整天都在玩这个游戏,不确定如何实现“哑”位,即不知道传递逐字响应的签名.
解决方法:
哑巴中介实际上是代理.最好的选择是仅使用标准的asp.net页面(而不是像将要争夺您的ASMX或WCF这样的服务功能),以便您可以按原样接收请求并使用以下简单方式对其进行处理标准请求/响应.您可以使用HttpWebRequest类将请求转发到另一个端点.
>客户要求https://myserver.com/forwarder.aspx?forwardUrl=http://3rdparty.com/api/login
> myserver.com(您的代理)读取查询字符串forwardUrl以及包含的所有POST或GET请求.
> myserver.com请求http://3rdparty.com/api/login,并传递从客户端发送的GET或POST数据.
> myserver.com接收响应并将其作为响应发送回其他端点(本质上只是Response.将内容写到响应中)
您将需要编写forwarder.aspx来处理请求. forwarder.aspx的代码应如下所示(未经测试):
protected void Page_Load(object sender, EventArgs e)
{
var forwardUrl = Request.QueryString["forwardUrl"];
var post = new StreamReader(Request.InputStream).ReadToEnd();
var req = (HttpWebRequest) HttpWebRequest.Create(forwardUrl);
new StreamWriter(req.GetRequestStream()).Write(post);
var resp = (HttpWebResponse)req.GetResponse();
var result = new StreamReader(resp.GetResponseStream).ReadToEnd();
Response.Write(result); // send result back to caller
}
内容总结
以上是互联网集市为您收集整理的如何使用C#(WCF)转发REST Web服务?全部内容,希望文章能够帮你解决如何使用C#(WCF)转发REST Web服务?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。