使用ServiceStack.net进行URL编码/解码问题

时间:2012-02-28 15:04:48

标签: c# .net asp.net-mvc-3 rest servicestack

通过我的测试,似乎servicestack会自动对通过GET请求的查询字符串发送的任何参数进行URL解码,但不会自动解码通过POST请求发送的params。

无论如何我可以检查HTTP方法并通过我的代码解码POST请求吗?

修改

我的方法派生自一个从Servicestack.net实现RestServiceBase类的类。

有没有办法通过RestServiceBase从当前请求检查HTTP方法?

2 个答案:

答案 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 "";
}