C# ServiceStack.net的URL编码/解码问题
通过我的测试,servicestack似乎自动对通过GET请求的查询字符串发送的任何参数进行URL解码,但不会自动对通过POST请求发送的参数进行解码 我是否可以检查HTTP方法并通过代码解码POST请求 编辑 我的方法派生自一个类,该类从Servicestack.net实现RestServiceBase类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())
有没有办法通过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或类似的工具进行检查。它可能会将您的查询参数放入请求体中。