.NET Web アプリケーションに JSON RPC ハンドラーがあり、テキスト ボックスの 1 つに次の値が含まれる 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]);