这没有任何意义:
JsonConvert.DeserializeObjectAsync<HttpResponseMessage>(response.Result.Content.ReadAsStringAsync().Result).Result
已经有回应了is an HttpResponseMessage
:
Task<HttpResponseMessage> response
没有什么可以反序列化的。你所要做的就是await它得到它的结果。首先,制定你的方法async
:
public async Task<HttpResponseMessage> TestEdit(int id, Test test)
然后在方法中等待结果:
return await httpClient.PutAsJsonAsync<Test>(uri, test);
这将有效地返回HttpResponseMessage
目的。所以做这个async
还有:
public async Task<ActionResult> TestEdit(Test test)
并等待您的其他方法:
HttpResponseMessage objtest = await TestDatabaseService.TestEdit(test.testID, test);
目前还不清楚为什么您需要在多个方法后面抽象它,但如果语义对您的需求有意义,那就没问题了。它不会立即受到伤害。
但基本上,您试图告诉 JSON 反序列化器对不是该对象的 JSON 表示形式的内容进行反序列化。所以结果将是null
,因为反序列化会悄悄失败。但关键是您不需要在这里反序列化任何内容。PutAsJsonAsync<T>
已经返回一个类型的对象HttpResponseMessage
.