通过我的测试,似乎servicestack会自动对通过GET请求的查询字符串发送的任何参数进行URL解码,但不会自动解码通过POST请求发送的params。
无论如何我可以检查HTTP方法并通过我的代码解码POST请求吗?
修改
我的方法派生自一个从Servicestack.net实现RestServiceBase类的类。
有没有办法通过RestServiceBase从当前请求检查HTTP方法?
答案 0 :(得分:2)
什么是电线格式?即是application / json还是application / x-www-form-urlencoded?因为只有application / x-www-form-urlencoded的Content-Type应该被编码。
现在,如果您使用C#ServiceClient进行POST,那么我们不支持POST'ing application / x-www-form-urlencoded,并且可能会发布JSON或XML等(取决于ServiceClient)这不需要Url编码。
如果你是从jQuery POST,那么它应该自动为你做url编码。
无论哪种方式,您是否可以发布HTTP请求有效负载,以便我们可以看到正在发生的事情。
答案 1 :(得分:0)
我在客户端使用jQuery编码:
var sear = htmlEncode($("#Search").html());
.
.
.
function htmlEncode(value) {
if (typeof (value) != "undefined") {
return $('<div/>').text(value).html();
}
return "";
}
function htmlDecode(value) {
if (typeof (value) != "undefined") {
return $('<div/>').html(value).text();
}
return "";
}