我将TypeScript应用程序部分移植到C#中。应用程序需要在Web服务上执行某个REST调用。 web服务是用C#和具体方法有以下特征:添加HttpClient PUT参数的正确方法? - 将TypeScript REST调用移植到C#
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#中执行此调用的正确方法是什么?
编辑:客户端初始化代码:
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