Ответ 1
Вам нужно будет добавить следующую зависимость,
System.Net.Http.Formatting.dll
Он должен быть там в расширениях → сборке.
или
Вы можете добавить Microsoft.AspNet.WebApi.Client
пакет nuget
Я отделяю некоторый код от веб-сайта и после копирования кода для конкретной страницы, о которой идет речь, я получаю сообщение об ошибке в строке кода PostAsJsonAsync()
:
HttpResponseMessage response = await client.PostAsJsonAsync("api/...", user);
который находится в этом операторе using (добавленные заголовки также)
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Mail;
using System.Threading.Tasks;
//...
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("WebServiceAddress");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.PostAsJsonAsync("api/...", user);
if (response.IsSuccessStatusCode)
{
const string result = "Thank you for your submission.";
return result;
}
//...
}
Ошибка, которую я получаю, говорит
Error 4 'System.Net.Http.HttpClient'
does not contain a definition for 'PostAsJsonAsync' and no extension
method 'PostAsJsonAsync' accepting a first argument of type 'System.Net.Http.HttpClient'
could be found (are you missing a using directive or an assembly reference?)
хотя он работает в прежнем проекте и полностью копируется из этого проекта. Я забыл что-то добавить?
Я ценю любую помощь по этому вопросу.
Вам нужно будет добавить следующую зависимость,
System.Net.Http.Formatting.dll
Он должен быть там в расширениях → сборке.
или
Вы можете добавить Microsoft.AspNet.WebApi.Client
пакет nuget
Я написал свой собственный метод расширения, так как считаю, что этот метод предназначен только для старых .NET api и используется сериализатором Newtonsoft JSON:
// Extension method to post a JSON
public static async Task<HttpResponseMessage> PostAsJsonAsync(this HttpClient client, string addr, object obj)
{
var response = await client.PostAsync(addr, new StringContent(
Newtonsoft.Json.JsonConvert.SerializeObject(obj),
Encoding.UTF8, "application/json"));
return response;
}
У меня была такая же ошибка, даже если установлен соответствующий пакет Nuget. Что мне помогло, так это выражение using
:
using System.Net.Http;