始める前に、私はこの問題の解決策をグーグルで調べましたが、それらを理解していない(私は初心者です)か、動作しません。
私がやりたいのは、localhost:8000上のREST APIにJSONデータを次の形式で送信することです。
{
"username" : "myusername",
"password" : "mypass"
}
次に、次のような文字列トークンを保持する応答が必要です。
{
"token" : "rgh2ghgdsfds"
}
JSONデータを送信し、応答からトークンを解析するにはどうすればよいですか?私はこれを行う同期方法を見てきましたが、何らかの理由で、それらは動作しません(または単にそれがどの名前空間にあるのかわからないため)。これを行う非同期方法を適用する場合、それがどのように機能するか説明していただけますか?
前もって感謝します。
HttpClient を使用します。簡単な例:
var client = new HttpClient();
client.BaseAddress = new Uri("localhost:8080");
string jsonData = @"{""username"" : ""myusername"", ""password"" : ""mypassword""}"
var content = new StringContent (jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("/foo/login", content);
// this result string should be something like: "{"token":"rgh2ghgdsfds"}"
var result = await response.Content.ReadAsStringAsync();
どこ "/foo/login"
は、HTTPリソースを指す必要があります。たとえば、AccountController
メソッドとLogin
がある場合、代わりに"/foo/login"
あなたは"/Account/Login"
。
ただし、一般に、シリアル化と逆シリアル化を処理するには、 Json.Net のようなツールを使用することをお勧めします。
それがどのように機能するかについての質問に関しては、ここで多くのことが行われています。 async/awaitの仕組みについて質問がある場合は、 MSDNのAsyncとAwaitを使用した非同期プログラミング を読むことをお勧めします。