我在 .NET Web 应用程序中有一个 JSON RPC 处理程序,并向其发布了一个 GWT 表单,其中一个文本框具有以下值:
你如何定义你今天的压力水平(1=最小,10=最大)?
当我将表单发布到服务器时,FireBug 显示 JSON 字符串已被截断为:
最少,10=最多)?
但是,当我在服务器的 RPC 处理程序中放置一个断点并查看 HttpRequest.Form 属性时,它仍然具有完整的字符串。但是,一旦我尝试通过 request.Form[0] 访问名称-值对,我就会得到截断的字符串,显然我的 JSON 编码器无法解码该字符串。任何想法为什么?编辑:这是方法:
public override string GetMethodName(HttpRequest request) {
if (RpcUtils.IsGet(request)) {
if (request.PathInfo.Length == 0) {
return null;
}
string functionName = request.PathInfo.Substring(1);
return functionName;
} else if (RpcUtils.IsPost(request)) {
if (request.PathInfo.Length > 0) {
// Not really a proper JSON-RPC request, but handle it anyway
string functionName = request.PathInfo.Substring(1);
return functionName;
} else {
// Real JSON-RPC request
var jsonRpc = (Dictionary<string, object>)this.Decode(request.Form[0]);
string functionName = (string)jsonRpc["method"];
return functionName;
}
} else {
return null;
}
}
问题出在:
var jsonRpc = (字典)this.Decode(request.Form[0]);