我目前正在开发一个与Web API集成的应用程序。我有一个异步函数,它发送一个
PUT
请求Web API以更新产品。
public async Task<ResponseStatus> updateProduct(Item product)
{
string URL = client.BaseAddress + "/catalog/products/" + product.id;
HttpResponseMessage response = await client.PutAsJsonAsync(URL, product).ConfigureAwait(false);
var payload = response.Content.ReadAsStringAsync();
ResponseStatus res = JsonConvert.DeserializeObject<ResponseStatus>(await payload.ConfigureAwait(false));
return res;
}
在我用来测试应用程序的控制台应用程序中,该函数完全按照预期工作,我在
Result
然而,当我试图从ASP。Net应用程序中,我在
,即使它的状态代码为200。我还可以看到我的更新没有在产品上生效,即使它在控制台应用程序中调用时肯定会更新。
GET
public async Task<Product> getProductByID(int id)
{
Product product = null;
string URL = client.BaseAddress + "/catalog/products/" + id;
string additionalQuery = "include=images,variants";
HttpResponseMessage response = await client.GetAsync(URL + "?" + additionalQuery).ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
var payload = response.Content.ReadAsStringAsync();
product = JsonConvert.DeserializeObject<Product>(await payload.ConfigureAwait(false));
}
return product;
}
为什么在ASP。Net app即使
是否为空,并且实际上没有对产品进行更新?