当前位置: 首页 > 知识库问答 >
问题:

把内容在Http响应消息对象?

益清野
2023-03-14

几个月前,微软决定改变Http响应消息类。以前,您可以简单地将数据类型传递给构造函数,然后返回包含该数据的消息,但现在不行了。

现在,您需要使用Content属性来设置消息的内容。问题是它属于HttpContent类型,我似乎找不到一种方法将字符串转换为HttpContent。

有人知道如何处理这个问题吗?谢谢。

共有3个答案

颛孙和颂
2023-03-14

显然,这里详细介绍了新的方法:

http://aspnetwebstack.codeplex.com/discussions/350492

引用亨里克的话,

HttpResponseMessage response = new HttpResponseMessage();

response.Content = new ObjectContent<T>(T, myFormatter, "application/some-format");

因此,基本上,必须创建ObjectContent类型,它显然可以作为HttpContent对象返回。

蒙勇
2023-03-14

您应该使用请求创建响应。创建响应:

HttpResponseMessage response =  Request.CreateResponse(HttpStatusCode.BadRequest, "Error message");

您可以将对象传递给CreateResponse,而不仅仅是字符串,它将根据请求的Accept头对其进行序列化。这样可以避免手动选择格式化程序。

陶健
2023-03-14

特别是对于字符串,最快的方法是使用StringContent构造函数

response.Content = new StringContent("Your response text");

对于其他常见场景,还有许多额外的HttpContent类子体。

 类似资料:
  • 我有一个ASP.NET的MVC WEB API。出于几个原因(因为没有授权而重定向...),我不能只使用一个简单的对象并在我的控制器方法中返回它。因此,我需要允许我重定向的Http响应消息类。 目前我正在这样做: ..将序列化为JSON的对象转换为HttpResponseMessage的内容。不知何故,我觉得有另一种更好的方法可以做到这一点。对此有什么想法吗?

  • 我正在使用 Jmeter 执行一个脚本进行负载测试。我在两者之间遇到错误,例如。如果我应用了500users的负载,直到250个用户线程成功运行,那么错误来自连接超时错误。然后,它再次运行成功为某些线程,然后出错。 代码如下:- 响应标头: 我需要破坏服务器。 有人能帮我吗?

  • 我是JMeter的新手,正在尝试使用JMeter和SMTP发送HTTP请求和电子邮件。 我将JMeter错误作为非HTTP响应代码: < code > Java . net . socket exception/Non HTTP响应消息:连接重置 SMTP错误为500/ 我已完成以下设置: user.properties: hc。参数: 这些更改仍然没有解决我的问题。你能帮助我在哪里更改设置来解决

  • 我有一个场景,从一个网站下载zip文件.当试图击中100个用户与jeter得到成功响应的所有100个用户,但当我尝试做同样的150个用户直到74个用户得到成功响应,这意味着用户下载zip文件没有任何错误,但其余用户得到以下错误:: 获取采样器结果:https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js代码:非HTTP响应代码

  • 记录的Blazemeter脚本在JMeter中不工作,出现以下错误消息。 响应代码:非HTTP响应代码:java.net。SocketException响应消息:非HTTP响应消息:软件导致连接中止:recv失败

  • HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。 在本章节中我们将具体来介绍HTTP响应头信息。 应答头 说明 Allow 服务器支持哪些请求方法(如GET、POST等)。 Content-Encoding 文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间。Java的GZIPOut