Мы хотим иметь возможность использовать пакет Microsoft.AspNet.WebApi.Client
из нашего веб-приложения ASP.NET Core MVC, чтобы сделать HTTP-вызов внешней системе. Он работает, но я не смог найти соответствующий исходный код в ядре .NET (github). Можно ли использовать эту библиотеку с точки зрения дорожной карты ASP.NET? Будет ли она поддерживаться в ASP.NET Core в будущем? Самое главное, будет ли этот пакет поддерживаться на платформах, отличных от Windows, как часть ядра ASP.NET Core/.NET?Можем ли мы использовать Microsoft.AspNet.WebApi.Client из приложения ASP.NET Core?
9
A
ответ
5
Вы можете попробовать, что я сделал для клиента REST. Я обнаружил, что сборка, о которой вы упоминали в ее последней версии, не работает в недавно выпущенном ASP.Net Core 1.0. Вместо "Microsoft.AspNet.WebApi.Client"
используйте "System.Net.Http"
.
Тогда где бы вы построили запрос HTTP POST, как это:
using AvailabilityPricingClient.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AvailabilityPricingClient.Core.Model;
using System.Net.Http;
using System.Net.Http.Headers;
namespace AvailabilityPricingClient.Client
{
public class ProductAvailabilityPricing : IProductAvailabilityPricing
{
private HttpClient _client;
public ProductAvailabilityPricing(string apiUrl)
{
_client = new HttpClient();
_client.BaseAddress = new Uri(apiUrl);
_client.DefaultRequestHeaders.Accept.Clear();
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
public void Dispose()
{
_client.Dispose();
}
public async Task<IEnumerable<Availablity>> GetAvailabilityBySkuList(IEnumerable<string> skuList)
{
HttpResponseMessage response = _client.PostAsJsonAsync("/api/availabilityBySkuList", skuList).Result;
if (response.IsSuccessStatusCode)
{
var avail = await response.Content.ReadAsAsync<IEnumerable<Availablity>>();
return avail;
}
return null;
}
}
}
Теперь вы будете строить так:
using AvailabilityPricingClient.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AvailabilityPricingClient.Core.Model;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json;
namespace AvailabilityPricingClient.Client
{
public class ProductAvailabilityPricing : IProductAvailabilityPricing
{
private HttpClient _client;
public ProductAvailabilityPricing(string apiUrl)
{
_client = new HttpClient();
_client.BaseAddress = new Uri(apiUrl);
_client.DefaultRequestHeaders.Accept.Clear();
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
public void Dispose()
{
_client.Dispose();
}
public async Task<IEnumerable<Availablity>> GetAvailabilityBySkuList(IEnumerable<string> skuList)
{
var output = JsonConvert.SerializeObject(skuList);
HttpContent contentPost = new StringContent(output, System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage response = _client.PostAsync("/api/availabilityBySkuList", contentPost).Result;
if (response.IsSuccessStatusCode)
{
var avail = await response.Content.ReadAsStringAsync()
.ContinueWith<IEnumerable<Availablity>>(postTask =>
{
return JsonConvert.DeserializeObject<IEnumerable<Availablity>>(postTask.Result);
});
return avail;
}
return null;
}
}
}
Таким образом, вы интерфейс не меняется только тело вашего запросить изменения кода.
Это работает для меня .... Удачи ....
Смежные вопросы
- 1. Можем ли мы использовать dhtmlxscheduler в asp.net?
- 2. Можем ли мы использовать Core Location в Apple Watch?
- 3. Как мы можем использовать Middleware как архитектуру в ASP.NET Core для нашего приложения?
- 4. Можем ли мы использовать CoreAnimation в Cocos2d?
- 5. Можем ли мы по-прежнему использовать свободные файлы CSHTML в wwwroot в ASP.Net Core?
- 6. Можем ли мы использовать $ (document) .ready() на странице asp.net?
- 7. Можем ли мы использовать AsyncHttpClient в Google App Engine приложения
- 8. Можем ли мы использовать nedb с NativeScript?
- 9. Можем ли мы использовать rest api в ASP.Net?
- 10. Можем ли мы использовать классы PHP в Asp.net
- 11. Можем ли мы использовать Slim html в Asp.net?
- 12. Можем ли мы использовать Ресурсные выражения в ASP.NET MVC
- 13. Asp.net: Можем ли мы использовать viewstate MasterPage в ContentPage?
- 14. Можем ли мы использовать xamarin для тестирования гибридного мобильного приложения
- 15. Можем ли мы использовать демо-приложения cocos2D в игре?
- 16. Можем ли мы использовать TextView для создания приложения на Android?
- 17. Можем ли мы использовать код nodejs внутри собственного родного приложения?
- 18. Можем ли мы использовать Html.ActionLink() для url вне приложения
- 19. Можем ли мы добавить или использовать handleOpenURL другого делегата приложения
- 20. Можем ли мы использовать родную карту iOS для гибридного приложения?
- 21. Можем ли мы скачать песни из iTunes из приложения iOS
- 22. Можем ли мы установить событие в сири из стороннего приложения?
- 23. php5: Можем ли мы разработать настольные приложения
- 24. Можем ли мы загрузить внешний пакет из приложения iOS?
- 25. Можем ли мы использовать CASE в BETWEEN
- 26. Можем ли мы использовать Dalvik с танго
- 27. Можем ли мы удалить неиспользуемые приложения из Google Play?
- 28. Можем ли мы использовать UmlStateMachineModelFactory внутри StateMachineBuilder
- 29. Можем ли мы получить возвращаемое значение PHP-файла из ASP.NET?
- 30. Можем ли мы использовать скриптлеты внутри Javascript?
Это отличный вопрос. Я также был бы очень заинтересован в ответе. –