У меня есть два проекта
Первое - Мобильное приложение с Xamarin.Forms
Второе - Приложение Windows Form
и оба имеют тот же API, который был создан с использованием мобильного приложения Azure.
в форме Windows , когда я пытаюсь обновить строку в базе данных с помощью.Net HttpClient с использованием следующего кода:
private void BtnUpdateUser_Click(object sender, EventArgs e)
{
UserRepository userRepository = new UserRepository();
var user = userRepository.GetAllUsers().FirstOrDefault(w => w.UserId == 1)
user.UserName = "UpdateUserName";
var result = userRepository.UpdateUser(user.Id, user);
}
В классе UserRepository У меня есть метод с именем UpdateUser
public User UpdateUser(string id, User user)
{
var result = Task.Run(async () => await azureServices.UpdateAsync(id, user)).Result;
return result;
}
InКласс AzureServices У меня есть метод с именем UpdateAsync
public async Task<T> UpdateAsync(string id, T instance)
{
var Uri= new Uri(baseAddress + id + zumoAddition); //"http://localhost:55040/tables/User/48D68C86-6EA6-4C25-AA33-223FC9A27959?zumo-api-version=2.0.0
var content = JsonConvert.SerializeObject(instance);
await _httpClient.PatchAsync(Uri, new StringContent(content, Encoding.UTF8, "application/json"));
return instance;
}
PatchAsync - это метод расширения для выполнения запроса PATCH
с Windows.Web.Http.HttpClient
public static async Task<HttpResponseMessage> PatchAsync(this HttpClient Client, Uri requestUri, HttpContent contnet)
{
var method = new HttpMethod("PATCH");
var httpRequestMessage = new HttpRequestMessage(method, requestUri)
{
Content = contnet
};
var httpResponseMessage = new HttpResponseMessage();
try
{
httpResponseMessage = await Client.SendAsync(httpRequestMessage);
}
catch (TaskCanceledException e)
{
Debug.WriteLine("Error: " + e.ToString());
}
return httpResponseMessage;
}
в этой строке httpResponseMessage = await Client.SendAsync(httpRequestMessage);
Я получаю эту ошибку:
{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
x-zumo-server-version: net-2.0.0
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcQW5hc1xEZXNrdG9wXFB1cmNoYXNlT3JkZXJzQmFja2VuZFxQdXJjaGFzZU9yZGVyc0JhY2tlbmRcdGFibGVzXFVzZXJcNTA1NzdBOTMtOEEzRi00OTEwLUJBOEYtM0MwMkMyOUFDMDUx?=
Date: Thu, 29 Nov 2018 10:20:59 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Content-Length: 188
Content-Type: application/json; charset=utf-8
}}
Inбэкэнд У меня есть контроллер с методом Patch:
public Task<User> PatchUser(string id, Delta<User> patch)
{
return UpdateAsync(id, patch);
}
, когда я пытаюсь отладить бэкэнд, я получаю это:
Id = 179, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"
Вопрос: Как мне избавиться от этой ошибки и почему она появляется.