我一直在寻找这个问题,但非与我的情况相同。
我有以下控制器:
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
答案 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
所以基本上你在服务器端无能为力,你应该修复客户端。