私は部分的にC#にTypeScriptアプリケーションを移植しています。アプリケーションは、Webサービス上で特定のREST呼び出しを実行する必要があります。 Webサービスは、C#で書かれている具体的な方法は、次のシグネチャを有する:HttpClient PUTパラメータを追加する正しい方法は? - C#へのTypeScript REST呼び出しの移植
public async Task<IHttpActionResult> RegisterDevice(DeviceRegistration deviceRegistration)
元のアプリケーション(活字体)は次のようにREST呼び出しを行う:
this.$http.put(this.Configuration.registrationEndpointUrl, {
field1: value1,
field2: value2,
field3: value3
})
私はどのように上のStackOverflowを検索しました電話をして、それを行う方法を説明する記事を見つけました。私はその後、C#のバージョンで次を作成しました:
var pairs = new List<KeyValuePair<string, string>>() {
new KeyValuePair<string, string>("field1", Settings.Value1),
new KeyValuePair<string, string>("field2", Settings.Value2),
new KeyValuePair<string, string>("field3", "value3")
};
var content = new FormUrlEncodedContent(pairs);
var response = await Client.PutAsync(Configuration.RegistrationUrl, content);
しかし、これは空の応答を返します。私はFormUrlEncodedContent
で何かが間違っていると思っていますか? C#でこの呼び出しを行う正しい方法は何ですか?
EDIT:クライアントの初期化コード:
private static async Task<HttpClient> CreateClient() {
await Authenticator.VerifyAuthentication();
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("x-zumo-auth", Settings.OAuthToken);
client.DefaultRequestHeaders.Add("x-oauth-provider", Settings.OAuthProvider.Value.ToString());
return client;
}
を使用することができますか? – Vyrira
@Vyrira BadRequest – EpicSam