热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HttpClient不支持PostAsJsonAsync方法c#-HttpClientnotsupportingPostAsJsonAsyncmethodC#

Iamtryingtocallawebapifrommywebapplication.Amusing.net4.5andwhilewritingthecodei

I am trying to call a web api from my web application.Am using .net 4.5 and while writing the code i am getting an error HttpClient does not contain a definition PostAsJsonAsync method

我正在尝试从我的web应用程序调用web api。正在使用。net 4.5,在编写代码时,我得到一个错误HttpClient不包含定义PostAsJsonAsync方法

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:51093/");
client.DefaultRequestHeaders.Accept.Add(
   new MediaTypeWithQualityHeaderValue("application/json"));
var user = new Users();
user.AgentCode = 100;
user.Remarks = "Test";
user.CollectiOnDate= System.DateTime.Today;
user.RemittanceDate = System.DateTime.Today;
user.TotalAmount = 1000;
user.OrgBranchID = 101;

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

and I am getting the error message :

我得到了错误信息:

Error:  '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?)

Please have a look and advice me.

请给我看看,并给我一些建议。

7 个解决方案

#1


282  

Yes, you need to add a reference to

是的,您需要添加一个引用到

System.Net.Http.Formatting.dll

This can be found in the extensions assemblies area.

这可以在扩展程序集区域中找到。

Note that a good way of achieving this is by adding the NuGet package System.Net.Http.Formatting.Extension to your project.

注意,实现这一点的一个好方法是添加NuGet包System.Net.Http.Formatting。扩展您的项目。

#2


120  

The missing reference is the System.Net.Http.Formatting.dll. But the better solution is to add the NuGet package Microsoft.AspNet.WebApi.Client to ensure the version of the formatting dll worked with the .NET framework version of System.Net.Http in my project.

缺少的引用是System.Net.Http.Formatting.dll。但是更好的解决方案是添加NuGet包Microsoft.AspNet.WebApi。客户端确保格式化dll的版本与。net框架版本的System.Net兼容。在我的项目Http。

#3


112  

PostAsJsonAsync is no longer in the System.Net.Http.dll (.NET 4.5.2). You can add a reference to System.Net.Http.Formatting.dll, but this actually belongs to an older version. I ran into problems with this on our TeamCity build server, these two wouldn't cooperate together.

PostAsJsonAsync不在System.Net.Http中。dll(。净4.5.2)。您可以添加对system . net . http . format的引用。dll,但它实际上属于一个旧版本。我在我们的TeamCity构建服务器上遇到了这个问题,这两个不能一起合作。

Alternatively, you can replace PostAsJsonAsyncwith a PostAsync call, which is just part of new dll. Replace

或者,您可以用postasjsonasync调用替换postasjsonasync,后者只是新dll的一部分。取代

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

With:

:

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

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

参见https://code.msdn.microsoft.com/windowsapps/How-to-use-HttpClient-to-b9289836

#4


21  

As already debatted, this method isn't available anymore since .NET 4.5.2. To expand on Jeroen K's answer you can make an extension method:

由于已经进行了debatted,所以这个方法在。net 4.5.2之后就不再可用了。要扩展耶罗文K的答案,可以使用扩展方法:

public static async Task PostAsJsonAsync(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);
}

Now you are able to call client.PostAsJsonAsync("api/AgentCollection", user).

现在您可以调用客户机了。PostAsJsonAsync(“api / AgentCollection”、用户)。

#5


6  

I had this issue too on a project I'd just checked out from source control.

在我刚刚从源代码控制中检出的一个项目中,我也遇到了这个问题。

The symptom was the error described above and a yellow warning triangle on a reference to System.Net.Http.Formatting

症状是上面描述的错误和system . net . http . format的一个黄色警告三角形

To fix this, I removed the broken reference and then used NuGet to install the latest version of Microsoft.AspNet.WebApi.Client.

为了解决这个问题,我删除了被破坏的引用,然后使用NuGet安装了最新版本的Microsoft.AspNet.WebApi.Client。

#6


2  

Instead of writing this amount of code to make a simple call, you could use one of the wrappers available over the internet.

不用编写这么多代码来进行简单的调用,您可以使用internet上可用的一个包装器。

I've written one called WebApiClient, available at NuGet... check it out!

我写了一篇叫做WebApiClient的文章,在NuGet上可以找到。点击这里查看详情!

http://webapiclient.azurewebsites.net

http://webapiclient.azurewebsites.net

#7


2  

I know this reply is too late, I had the same issue and i was adding the System.Net.Http.Formatting.Extension Nuget, after checking here and there I found that the Nuget is added but the System.Net.Http.Formatting.dll was not added to the references, I just reinstalled the Nuget

我知道这个回复太晚了,我遇到了同样的问题,我添加了System.Net.Http.Formatting。扩展Nuget,在这里和那里检查之后,我发现添加了Nuget,但是添加了system . net . http . format。dll没有添加到引用中,我只是重新安装了Nuget


推荐阅读
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 本文提供了 RabbitMQ 3.7 的快速上手指南,详细介绍了环境搭建、生产者和消费者的配置与使用。通过官方教程的指引,读者可以轻松完成初步测试和实践,快速掌握 RabbitMQ 的核心功能和基本操作。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • 本文详细介绍了如何在 Grafana 中独立于 Alertmanager 配置邮件和微信告警。具体步骤包括配置 SMTP 服务器以实现邮件告警,以及设置微信告警的集成方式。通过这些配置,用户可以更灵活地管理和接收来自 Grafana 的告警通知,确保及时响应系统异常。文章还提供了详细的配置示例和常见问题的解决方案,帮助用户顺利完成设置。 ... [详细]
  • 深入解析JWT的实现与应用
    本文深入探讨了JSON Web Token (JWT) 的实现机制及其应用场景。JWT 是一种基于 RFC 7519 标准的开放性认证协议,用于在各方之间安全地传输信息。文章详细分析了 JWT 的结构、生成和验证过程,并讨论了其在现代 Web 应用中的实际应用案例,为开发者提供了全面的理解和实践指导。 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Liferay Portal 中 AutoEscape 构造函数的应用与实例代码解析 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
  • 深入解析零拷贝技术(Zerocopy)及其应用优势
    零拷贝技术(Zero-copy)是Netty框架中的一个关键特性,其核心在于减少数据在操作系统内核与用户空间之间的传输次数。通过避免不必要的内存复制操作,零拷贝显著提高了数据传输的效率和性能。本文将深入探讨零拷贝的工作原理及其在实际应用中的优势,包括降低CPU负载、减少内存带宽消耗以及提高系统吞吐量等方面。 ... [详细]
author-avatar
丢失的面包树
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有