50

別の ASP.Net Web API から WEBAPI を使用して応答をデータベースに格納する方法を知りたいです。javascript、コンソール アプリケーションなどのクライアントから WEBAPI を使用する方法を知っています。

ただし、要件は、WEBAPI によってサードパーティ API からデータを取得し、その結果をデータベースに保存して、WEBAPI を使用してクライアントがデータを要求するようにすることです。

Asp.Net Web API でこれを行うことは可能ですか?

4

3 に答える 3

93

このチュートリアルでは、C# でWeb APIを使用する方法について説明します。この例ではコンソール アプリケーションを使用していますが、もちろん別のWeb APIを使用して使用することもできます。

http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client

をご覧ください。HttpClient

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost/yourwebapi");

次のような Accept ヘッダーを使用して、リクエストが JSON でのレスポンスを要求していることを確認してください。

client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));

チュートリアルとは異なる部分があります。他のオブジェクトと同じオブジェクトがあることを確認してくださいWEB API。そうでない場合は、オブジェクトを独自のオブジェクトにマップする必要があります。ASP.NET受け取った を、希望するオブジェクトに変換しJSONます。

HttpResponseMessage response = client.GetAsync("api/yourcustomobjects").Result;
if (response.IsSuccessStatusCode)
{
    var yourcustomobjects = response.Content.ReadAsAsync<IEnumerable<YourCustomObject>>().Result;
    foreach (var x in yourcustomobjects)
    {
        //Call your store method and pass in your own object
        SaveCustomObjectToDB(x);
    }
}
else
{
    //Something has gone wrong, handle it here
}

.Result例のケースに使用していますのでご了承ください。async awaitここでパターンの使用を検討する必要があります。

于 2013-10-18T11:36:37.007 に答える