где класс HttpClientExtensions? [Дубликат]

Используйте функцию callback() внутри успеха foo(). Попробуйте таким образом. Это просто и легко понять. & nbsp;

var lat = "";
var lon = "";
function callback(data) {
    lat = data.lat;
    lon = data.lon;
}
function getLoc() {
    var url = "http://ip-api.com/json"
    $.getJSON(url, function(data) {
        callback(data);
    });
}

getLoc();
163
задан Mark Seemann 5 December 2013 в 15:37
поделиться

7 ответов

Да, вам нужно добавить ссылку на

System.Net.Http.Formatting.dll

. Это можно найти в области сборки расширений.

Обратите внимание, что хорошим способом достижения этого является добавление пакет NuGet System.Net.Http.Formatting.Extension для вашего проекта.

295
ответ дан Ohad Schneider 26 August 2018 в 10:49
поделиться

Вместо того, чтобы писать этот код для простого вызова, вы можете использовать одну из оберток, доступную через Интернет.

Я написал одно имя WebApiClient, доступное в NuGet ... check это [! g2]

http://webapiclient.azurewebsites.net

2
ответ дан Andreo Romera 26 August 2018 в 10:49
поделиться

Недопустимая ссылка - System.Net.Http.Formatting.dll. Но лучшим решением является добавление пакета NuGet Microsoft.AspNet.WebApi.Client, чтобы версия dll для форматирования работала с версией .NET framework System.Net.Http в моем проекте.

127
ответ дан burnttoast11 26 August 2018 в 10:49
поделиться

Как уже debatted, этот метод больше не доступен с .NET 4.5.2. Чтобы расширить ответ Jeroen K , вы можете сделать метод расширения:

public static async Task<HttpResponseMessage> PostAsJsonAsync<TModel>(this HttpClient client, string requestUrl, TModel model)
{
    var serializer = new JavaScriptSerializer();
    var json = serializer.Serialize(model);
    var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
    return await client.PostAsync(requestUrl, stringContent);
}

Теперь вы можете вызвать client.PostAsJsonAsync("api/AgentCollection", user).

23
ответ дан Community 26 August 2018 в 10:49
поделиться

PostAsJsonAsync больше не находится в System.Net.Http.dll (.NET 4.5.2). Вы можете добавить ссылку на System.Net.Http.Formatting.dll, но это действительно относится к более старой версии. Я столкнулся с проблемами на этом сервере сборки TeamCity, эти два не будут взаимодействовать друг с другом.

В качестве альтернативы вы можете заменить PostAsJsonAsync на вызов PostAsync, который является частью новой dll. Замените

var response = client.PostAsJsonAsync("api/AgentCollection", user).Result;

С помощью:

var response = client.PostAsync("api/AgentCollection", new StringContent(
   new JavaScriptSerializer().Serialize(user), Encoding.UTF8, "application/json")).Result;

См. https://code.msdn.microsoft.com/windowsapps/How-to-use-HttpClient-to -b9289836

123
ответ дан Jeroen K 26 August 2018 в 10:49
поделиться

У меня тоже была проблема с проектом, который я только что проверил из исходного управления.

Симптом был описанной выше ошибкой и желтым предупреждающим треугольником на ссылке на System.Net.Http.Formatting

Чтобы исправить это, я удалил неработающую ссылку, а затем использовал NuGet для установки последней версии Microsoft.AspNet.WebApi.Client.

6
ответ дан Mr Giggles 26 August 2018 в 10:49
поделиться

Я знаю, что этот ответ слишком поздний, у меня была та же проблема, и я добавлял Nuget System.Net.Http.Formatting.Extension, после проверки здесь и там я обнаружил, что Nuget добавлен, но System.Net.Http.Formatting.dll не был добавлен в ссылки, Я просто переустановил Nuget

2
ответ дан Roman Marusyk 26 August 2018 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: