17

I'm currently trying to do some JSON formatting using the HttpClient in .NET Core and MediaTypeFormatters. Especially the function "ReadAsAsync(..., MediaTypeFormatter, ...)" (https://msdn.microsoft.com/de-de/library/system.net.http.httpcontentextensions.readasasync(v=vs.118).aspx) which was available in .NET Framework in the HttpContent-Class would be very helpful. As far as I understood, it can be found in the NuGet package Microsoft.AspNet.WebApi.Client but I cannot download it because it is not supported in .NET Core.

Though I have read, that it should be:

I know that it is possible to do the formatting using Newtonsoft and so on.

But does someone know, if that package will be available in .NET Core some day again? I could not find any information really...

TylerH
  • 20,799
  • 66
  • 75
  • 101
timothy3001
  • 765
  • 2
  • 8
  • 17
  • Possible duplicate of [Send HTTP POST message in ASP.NET Core using HttpClient PostAsJsonAsync](https://stackoverflow.com/questions/37750451/send-http-post-message-in-asp-net-core-using-httpclient-postasjsonasync) – Henke Oct 10 '19 at 12:19

3 Answers3

9

Update:

Microsoft.AspNet.WebApi.Client version 5.2.4 was released on 2018-02-12.

Thanks @whitney-kew @jaquez


The package is not fully compatible with dotnetcore now. However there's workaround for this. You have to edit project.csproj like below:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>netstandard1.4</TargetFramework>
   <PackageTargetFallback>portable-net451+win8</PackageTargetFallback>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.3" />
    <PackageReference Include="System.Runtime.Serialization.Xml" Version="4.3.0-*" />
    <PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0-*" />
  </ItemGroup> 
</Project>

Please refer to this github issue for details:

https://github.com/aspnet/Home/issues/1558

I think the new Microsoft.AspNet.WebApi.Client version (5.2.4) should fix this, but it's not released yet, maybe in late 2017.

starshine wang
  • 616
  • 1
  • 8
  • 13
8

Microsoft.AspNet.WebApi.Client 5.2.4-preview1 is available now at https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client/5.2.4-preview1, as of the first week of January 2018. I was able to add it to my .NET Core library today, and it builds successfully.

Whitney Kew
  • 215
  • 3
  • 13
1

In addition to the other answers, there's also the System.Net.Http.Json package that uses the new Json serializer instead of Newtonsoft's.

The usage is slightly different than using Microsoft.AspNet.WebApi.Client.

httpClient.GetFromJsonAsync<Type>(uri);

There's a number of other overloads as well.

ESG
  • 8,988
  • 3
  • 35
  • 52