私のC#アプリケーションでは、2つの異なる部分が必要です:
1)HttpClientをラップするクラスライブラリはURIなどのパラメータとJSONオブジェクトをとります掲示、およびHttpClientをのインスタンス上のPOSTメソッド呼び出し:クラスライブラリとしてラップされたHttpClientを正しく使用する方法
static async Task CreateCustomer()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://10.211.55.2:8080/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Accept", "application/json");
var customer = new Customer() { Name = "Gizmo", Address = "123 Widget lane" };
var response = await client.PostAsJsonAsync("/api/customer", customer);
var p = response;
}
}
2)このクラスライブラリをインポートWindowsコンソールアプリケーションを、このcreateCustomerのメソッドを呼び出し、URIおよび顧客の実際のパラメータ値を渡しますJSONオブジェクト:
static async Task EnvokeCreateCustomer()
{
Customer customer = new Customer {Name="",Address="" };
var URI = "http://my_api:8080/Customer";
RestClient.Client restClient = new RestClient.Client();
restClient.CreateCustomer(URI, customer);
}
このコードは実行されますが、APIに当たったイベントではありません。 GET APIと同じ問題。
このようなクラスライブラリを作成する方法はありますか?コンソールアプリケーションで呼び出すことはできますか?
あなたのライブラリ 'CreateCustomer()'はパラメータを受け付けないので、どのようにパラメータを呼び出していますか? – Rahul
最後の行を待っていないので、次のように変更します。await restClient.CreateCustomer(URI、customer); EnvokeCreateCustomer()の呼び出しを待っていますか? –
@PeterBons、それは非同期であるため、あなたがそれを待つことを制限するものではありません。 – Rahul