Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ServiceStack.net的URL编码/解码问题_C#_.net_Asp.net Mvc 3_Rest_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,.net,Asp.net Mvc 3,Rest,servicestack" /> servicestack,C#,.net,Asp.net Mvc 3,Rest,servicestack" />

C# ServiceStack.net的URL编码/解码问题

C# ServiceStack.net的URL编码/解码问题,c#,.net,asp.net-mvc-3,rest,servicestack,C#,.net,Asp.net Mvc 3,Rest,servicestack,通过我的测试,servicestack似乎自动对通过GET请求的查询字符串发送的任何参数进行URL解码,但不会自动对通过POST请求发送的参数进行解码 我是否可以检查HTTP方法并通过代码解码POST请求 编辑 我的方法派生自一个类,该类从Servicestack.net实现RestServiceBase类 有没有办法通过RestServiceBase从当前请求检查HTTP方法?我在客户端使用jQuery编码: var sear = htmlEncode($("#Search").html())

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

我是否可以检查HTTP方法并通过代码解码POST请求

编辑

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


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

我在客户端使用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 "";
} 
var sear=htmlEncode($(“#搜索”).html();
.
.
.
函数htmlEncode(值){
if(类型(值)!=“未定义”){
返回$('').text(value.html();
}
返回“”;
}
函数htmlDecode(值){
if(类型(值)!=“未定义”){
返回$('').html(value.text();
}
返回“”;
} 

导线格式是什么?i、 是application/json还是application/x-www-form-urlencoded?因为只有application/x-www-form-urlencoded内容类型应该被编码

现在,如果您使用C#ServiceClient发布,那么我们不支持POST'ing application/x-www-form-urlencoded,很可能会发布JSON或XML等(取决于ServiceClient),而不需要Url编码

如果您是从jQuery发布的,那么它应该自动为您进行url编码


无论哪种方式,您都可以发布HTTP请求有效负载,以便我们看到发生了什么。

您是否尝试过HttpUtility.HtmlEncodeYes,但我的服务派生自一个不知道(据我所知)HTTP方法的基类。如果我对GET请求使用Decode方法,我将有效地对参数进行两次解码,这可能会导致问题。对于POST和GET之间的区别,似乎存在一些混淆。POST提交表单时不向URL追加参数,而是在请求正文中发送表单。GET是将表单字段附加到URL的方法。是的,但是在客户端,POST参数是作为请求的一部分进行URL编码的。我建议使用wireshark或类似的工具进行检查。它可能会将您的查询参数放入请求体中。