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

如何添加“Content Type=application/json;v=2.0”,包括使用HttpClient进行版本控制?

纪正德
2023-03-14

抱歉这样问这个问题。我可以给你一种感觉,我希望你为我做代码。我已经花了一天的时间编写代码来发送一个超文本传输协议请求,其中包含一个带有版本控制的标题:

对于版本控制,我使用Microsoft/aspnet api版本控制项目中的“按媒体类型进行版本控制”。

我的API部件工作正常,我可以请求正确的版本,邮递员没有问题:

您看到这行“Content Type=application/json;v=2.0”?邮递员:没问题。使用来自C#的HttpClient是不可能的。

让我在这里复制pas所有的解决方案,我尝试了他们的错误。我将编辑这个问题,每次我尝试一个新的解决方案。通过设施,但也更清楚我会复制粘贴图像:

解决方案1:新内容为的扩展方法=。。。

解决方案1B:来自初学者Tejas

解决方案1C:来自初学者Tejas,但现在使用MediaTypeWithQualityHeaderValue

解决方案2:带请求的扩展方法。标题。添加(…)

解决方案3:带客户端的BaseProxy。DefaultRequestHeaders。TRYADD未经验证(…)似乎我不能添加任何“内容类型”

解决方案4:带客户端的BaseProxy。DefaultRequestHeaders。接受添加(…)

解决方案5:请求。标题。TryAddWithoutValidation(“内容类型”、“应用程序/json”);

共有2个答案

符修杰
2023-03-14

当您不发送任何内容时,您不能(或至少不应该)使用内容类型。使用Accept标题执行GETDELETE请求,如下所示:

request.Headers.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json; v=2.0"));

如果指定了两个标题,则在接受之前考虑内容类型。如果Accept指定了具有一个版本的多种媒体类型,则会匹配质量最高的媒体类型。不支持按请求混合版本(例如发送2.0,但接收1.0)。目前还不支持使用一个版本协商多种媒体类型(质量除外)。

鲁品
2023-03-14

你能试试这个吗?

request.Content.Headers.ContentType = new MediaTypeWithQualityHeaderValue( "application/json" )
{
    Parameters = { new NameValueHeaderValue( "v", "2.0" ) }
};
 类似资料:
  • 问题内容: 我注意到在jquery中使用$ .post()时,默认contentType为application / x-www-form-urlencoded- 当我的ASP.NET MVC代码需要具有contentType = application / json时 如何使$ .post()发送contentType = application / json?我已经有大量的$ .post()函

  • 我需要我的Node REST API进行版本控制。我正在使用swagger 2.0作为验证中间件和文档。目前,我只有一个用于所有目的的swagger yml文件。 我使用url前缀(版本号:/v1/../v2/…等)来支持节点Rest API中的版本控制。我需要在任何时候支持多个版本。 我应该为每个API版本创建一个单独的swagger yml文件吗?如果是,如何在 swagger 验证中间件中加

  • 针对 Subversion 1.4(根据r2866编译) 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书的结构 本书是免费的 致谢 来自 Ben Collins-Sussman 来自 Brian W. Fitzpatrick 来自 C. Michael Pilato Subversion是什么? Subversion的历史 Subversion的特性 Subversion的架构 S

  • 问题内容: 我有一个ajax调用,它将表单数据发送到php函数。因为我读到很多东西,所以使用最佳实践是我想尝试的。但是不幸的是,我的脚本在使用时不返回任何内容。如果删除它,脚本将执行应做的事情。 您知道原因可能是什么,为什么吗?谢谢! 和我的PHP: 问题答案: 使用时,您将不能依赖于人口稠密。 仅针对表单编码的内容类型填充。 因此,您需要像这样从PHP原始输入读取数据: 当然,如果要发送,则实际

  • 问题内容: 我有一个ajax调用,它将表单数据发送到php函数。因为我读到很多东西,所以使用最佳实践是我想尝试的。但不幸的是,我的脚本在使用时不返回任何内容。如果删除它,脚本将执行应做的事情。 您知道原因可能是什么以及为什么吗?谢谢! 和我的PHP: 问题答案: 使用时,您将无法依靠被填充。 仅针对表单编码的内容类型填充。 因此,您需要像这样从PHP原始输入读取数据: 当然,如果要发送,则实际上应

  • 我试图用C语言复制CURL中的以下代码。请注意,这段代码使用curl时工作正常。我在用这个https://curl.olsh.me/创建请求。 curl-k-u“默认用户:机器人”-H”内容类型:application/x-www-form-urlencoded;v=2.0“-d”value=TRUE“”https://localhost/rw/rapid/symbol/RAPID/T_ROB1/