C#WebAPI - 获取带有作为QueryString传递的参数的URL

时间:2017-05-14 11:50:05

标签: c# asp.net-mvc controller urlencode

我一直在寻找这个问题,但非与我的情况相同。

我有以下控制器:

 public HttpResponseMessage GetMyService(int aType, [FromUri] string streamURL)

streamURL 是获取客户端发送的完整网址的参数。

客户端调用这样的服务: http://www.myservice.com/.../GetMyService/?aType=1&streamURL=http://www.client.com/?p1=100&p2=200

问题是,在最后,我将 [FromUri]字符串streamURL 参数设为http://www.client.com/ p1 = 100 ,而没有& ; P2 = 200

这是已知且合理的,但我不能放置任何编码/解码功能,因为URL在最开始时被剪切。

任何帮助将不胜感激..

THX

1 个答案:

答案 0 :(得分:3)

在发出请求时,客户端应正确URL encode streamURL查询字符串参数的值,以符合HTTP协议规范:

http://www.myservice.com/.../GetMyService/?aType=1&streamURL=http%3A%2F%2Fwww.client.com%2F%3Fp1%3D100%26p2%3D200

所以基本上你在服务器端无能为力,你应该修复客户端。