C# でクライアント サーバー デスクトップ アプリを構築していますが、RestSharp が私のプログラムをどこかでつまずかせているようです。最も奇妙なことは、他の POST が同じ Node.js サーバー アプリに対して機能していることです。
RestSharp を使用したコードは次のとおりです。
RestClient client = new RestClient("http://"+Configuration.server);
RestRequest request = new RestRequest("sync", Method.POST);
request.AddParameter("added", Indexer.getAddedJson());
request.AddParameter("removed", Indexer.getRemovedJson());
RestResponse<StatusResponse> response = (RestResponse<StatusResponse>)client.Execute<StatusResponse>(request);
e.Result = response.Data;
これは機能しません。つまり、サーバーをまったく呼び出さないということです。これも Fiddler を使用して確認しました。
しかし、これはうまくいきます:
using (var wb = new WebClient())
{
var data = new NameValueCollection();
data["added"] = Indexer.getAddedJson();
data["removed"] = Indexer.getRemovedJson();
var resp = wb.UploadValues("http://" + Configuration.server + "/sync", "POST", data);
}
何が起こっているのか一生わからない。このリクエストのためだけに RestSharp の使用をやめたくありません。他の POST リクエストは正常に機能しています。
response.Content が null であるため、逆シリアル化の問題ではありません。他の呼び出しでも StatusResponse を取得しているので、これはおそらく問題ではありません。