[英]Unable to pass a URL in GET request to a RESTful web service in C#
我在项目中遇到了意外问题。 问题是我的代码中动态生成了一个URL,我必须通过GET请求将其提交给RESTful Web服务。 例如,要提交的URL如下所示: http://mysampleserver.com:8080/calc/8999/bpaX
: http://mysampleserver.com:8080/calc/8999/bpaX
: http://mysampleserver.com:8080/calc/8999/bpaX
RESTful服务器接受URL作为其最后一个参数,格式如下:
http://myRestfulAPI.domainname.com/capture/bbbb/http://mysampleserver.com:8080/calc/8999/bpaX
我还使用System.Net.HttpUtility.UrlEncode(....)首先对“要提交的URL”进行编码,以将其合并到RESTful服务调用中。
这导致出现以下错误:
System.Web.HttpException:从客户端(:)检测到潜在危险的Request.Path值
为了解决该问题,我按照每个网页上介绍的步骤进行操作,但是没有运气。
我正在使用MVC 4在C#中实现RESTful API。
任何线索或想法如何解决这个showstopper问题?
我至少可以想到两种解决方案。
您需要对查询字符串(mvc参数)中的URL进行Url.Encode,否则它将被解释为MVC解码为参数的更多URL编码。 尝试类似@ Url.Encode(yourStringObject)之类的东西,并将其作为最后一个值或作为查询(即&q = url)传递
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.