使用System.ServiceModel库进行路由,我有一个REST服务,其中包含一个简单的模板
"{} SEARCHTERM?选择= {} someSearchOpt
所以电话会是这样的:
搜索短语"河流探险队"没有选项.
这只是接受搜索短语并返回结果.它工作得很好.但是,如果搜索包含文字&符号的短语,例如"Lewis&Clark",我尝试了明显的url编码&符号
刘易斯%26Clark
但即便如此,请求永远不会被路由,但服务器会立即返回400 Bad Request.很明显,它被解释为查询字符串分隔符,并使请求无效,因为此特定模板需要一个url参数并且没有前面的"?" 分隔符.
由于这些搜索短语可能具有其他受限制的字符,因此预期它们由客户端编码的url,并且当它们被成功路由时,REST api调用参数上的HttpUtility.UrlDecode.所以我的问题是,如果有一些技术可以将url编码的&符号正确路由为rest url参数而不是作为查询字符串分隔符进行预先解释和拒绝?
更新:对于记录,如果搜索词期望作为查询字符串参数(不是url参数),则发送Lewis%26Clark可以正常工作.例如
http://myhost.contoso.com/searchapi?searchTerm=lewis%26clark
因此,为了澄清,我希望在REST模板中使用url参数时获得相同的结果.
归档时间: |
|
查看次数: |
5445 次 |
最近记录: |