返回“application/xml”而不是“text/plain”ASP.NET Core Web API

2024-04-29

我有一个 XML 字符串,我需要将其作为 XML 文档返回。默认情况下,返回的内容类型为text/plain。内容已呈现,但我需要内容类型application/xml。我启用了 RespectBrowserAcceptHeader 选项,该选项会将对象序列化为 XML 并设置正确的内容类型,除非对象是字符串。

[HttpGet]
public string Get()
{
   return xmlString;
}

public static string xmlString = @"<?xml version=""1.0"" encoding=""UTF-8""?>
                     <sample>
                         Hello World.
                     </sample>";

简答

如果您有一个 XML 字符串并且需要将其作为 XML 文档返回,则返回内容结果 https://github.com/aspnet/Mvc/blob/a60cce1dade062454f106a1317fc198fc8778035/src/Microsoft.AspNetCore.Mvc.Core/ContentResult.cs.

[HttpGet]
public ContentResult Get()
{
    return new ContentResult
    {
        ContentType = "application/xml",
        Content = xmlString,
        StatusCode = 200
    };
}

完整示例

控制器

using Microsoft.AspNetCore.Mvc;

namespace MyXmlSample
{
    [Route("xml")]
    public class MyXmlController
    {
        public static string xmlString = 

@"<?xml version=""1.0"" encoding=""UTF-8""?>
<sample>
  Hello World.
</sample>";

        [HttpGet]
        public ContentResult Get()
        {
            return new ContentResult
            {
                ContentType = "application/xml",
                Content = xmlString,
                StatusCode = 200
            };
        }
    }
}

Startup

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;

namespace MyXmlSample
{
    public class Program
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvcCore();    
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseMvc();
        }

        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseStartup<Program>()
                .Build();

            host.Run();
        }
    }
}

项目.json

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.AspNetCore.Mvc.Core": "1.0.0-*",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*",
    "Microsoft.NETCore.App": "1.0.0-rc2-*"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dnxcore50",
        "portable-net45"
      ]
    }
  },
  "runtimes": {
    "win10-x64": {}
  }
}

Response

HTTP/1.1 200 OK
Date: Sun, 17 Apr 2016 22:10:45 GMT
Content-Type: application/xml
Server: Kestrel
Content-Length: 75

<?xml version="1.0" encoding="UTF-8"?>
<sample>
  Hello World.
</sample>

这是在 GitHub 上的 https://github.com/bigfont/StackOverflow/tree/master/AspNetCoreApiReturnXmlString为了更好的衡量。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回“application/xml”而不是“text/plain”ASP.NET Core Web API 的相关文章

  • 我们在Asp.net 5 Core中使用哪种加密算法

    目前 当我将项目类型从 Asp net 5 0 切换到 Asp net 5 0 Core 时 几乎所有加密算法都开始出现错误 这是因为它们都需要 System Security Cryptography 命名空间 而这在 Core 5 0
  • 使用字符串数组填充 Spinner

    当谈到 Android 应用程序时 我属于新手联盟 我希望用数组或字符串填充 Spinner 它是一个转换器应用程序 下面是我的 XML 文件的摘录 我希望填充 Spinner
  • 膨胀类 android.support.design.internal.BottomNavigationView 时出错

    我正在制作我的第一个应用程序 这是一个简单的应用程序 带有启动屏幕和主要活动 现在我有两个构建变体 免费版本 活动底部有 Admob 横幅 付费版本 该应用程序不会在底部显示 admob 横幅 而是将其替换为用于切换活动的底部导航视图 我将
  • asp.net core 1 appsettings.product.json 不更新连接字符串

    我在生产环境中有一个应用程序 使用在 IIS 上运行的 net core RC1 我重新编写了该应用程序 因为该公司希望将其放在 net core1 上 因为那是正式版本 在我的 net core RC1 应用程序中 我有 config j
  • .NET Core Web API 密钥

    我正在开发一个应用程序 用户可以通过用户名和密码进行身份验证 我们提供一个 JWT 令牌 然后在服务器上进行验证 我想补充的一件事是能够拥有一个特殊的 API 密钥 guid 用户在与此应用程序集成时可以使用该密钥 而不是使用用户名和密码
  • 使用 JAXB 编组 LocalDate

    我正在构建一系列链接类 我希望能够将其实例编组到 XML 以便我可以将它们保存到文件中并稍后再次读取它们 目前我使用以下代码作为测试用例 import javax xml bind annotation import javax xml b
  • 受 Azure AD B2C 保护的自动化端点测试

    我有一个 WebAPI 应用程序 它使用用户通过凭据登录获得的 Azure B2C 令牌对用户进行身份验证 我现在需要针对我的 WebAPI 编写一些测试 但考虑到我需要登录 我不确定如何自动获取令牌https login microsof
  • Dockerize 一个网络核心 Web api

    我正在尝试对 aspnetcore webapi 进行 dockerize 我按照这里的教程进行操作 https docs docker com engine examples dotnetcore https docs docker co
  • 用于冒号分隔标签的 XML 解析器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 JAXB 编组只能包含多种子节点类型之一的 XML 节点(SharePoint 查询)

    我正在尝试创建 JAXB 带注释的类来生成基于 Microsoft SharePoint 的 XML查询模式 http msdn microsoft com en us library ms467521 28v office 14 29 a
  • ElementTree 和 Element 有什么区别? (Python XML)

    from xml etree ElementTree import ElementTree Element SubElement dump elem Element 1 sub SubElement elem 2 tree ElementT
  • 使用 XML 时引用未声明的实体异常

    我正在尝试设置 xmldoc 的 innerxml 但出现异常 Reference to undeclaredEntity XmlDocument xmldoc new XmlDocument string text Hello I am
  • 在 WSDL 中包含 XSD

    我正在编写一个 wsdl 文件来在未来 SoapUI 中部署模拟服务 但我在包含我的 xsd 文件时遇到问题 XSD File
  • Asp.net WEB API - 如果我使用 POST 而不是 PUT 和 DELETE 会出现什么问题?

    我刚刚开始使用 Web API 虽然我发现创建我需要的方法和一些配置非常容易 但现在我遇到了一个我不知道如何解决的问题 一些将使用我的服务的应用程序非常旧 不支持 DELETE 和 PUT 方法 例如 j2me 应用程序 我发现可以通过传递
  • 无法使用 ASP.NET Core 从 JWT 令牌获取声明

    我正在尝试使用 ASP NET Core 实现 JWT 持有者身份验证的非常简单的实现 我从控制器返回的响应有点像这样 var identity new ClaimsIdentity identity AddClaim new Claim
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • 允许 .NET WebApi 忽略 DOCTYPE 声明

    我正在尝试通过 WebApi 方法将 XML 反序列化为对象 我有以下课程 XmlRoot IsNullable false public class MyObject XmlElement Name public string Name
  • 在工具栏下显示内容

    您好 我试图简单地将我的内容放在工具栏下方 但是当我运行我的应用程序时 某些内容本应位于工具栏下方 却隐藏在工具栏后面 我已经阅读了有关使用框架布局来尝试将其分离的内容 但我有点卡住了 我目前正在使用该软件提供的基本 android stu
  • & 在 xml 文件中算作一个还是多个字符?

    我正在使用的 XML 模式具有特定的字符串字符长度 所以我可能有一个类似的字符串 Jim Mary 在 C 中是 10 个字符 但是当它写入 xml 时 它会变成 Jim amp Mary 如果 XML 模式规定字符串最多只能有 10 个字
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D

随机推荐

  • 在 Python 中打开文本文件时出现问题

    这看起来应该很简单 f open C Users john Desktop text txt r 但我收到此错误 Traceback most recent call last File
  • 在 Magento 中获取过去 24 小时内的订单商品

    我正在尝试获取过去 24 小时内的所有订单商品 我已锁定查询 因此它返回了我需要的内容 order id 和created on 值 order items Mage getResourceModel sales order item co
  • 使用 cURL 发布数据时出现“位置参数”错误

    如果我要在没有 data 它工作得很好 我试过谷歌 但找不到这个问题的任何答案 按照位于的指示here https guides instructure com m 4214 l 83393 how do i install and use
  • UIView 动画取消任何触摸输入?

    我在这里有一个 UIScrollView 当用户滚动到页面时 我在屏幕中间添加显示标签 问题是 当动画进行时 用户无法滚动到下一页 所有用户交互似乎被禁用 直到动画结束 这是我用于显示标签的代码 if scrollView dragging
  • 如何使用jsp上传服务器文件夹上的文件[重复]

    这个问题在这里已经有答案了 我正在尝试使用 servlet jsp 将一些图像上传到位于我的服务器上的文件夹中 下面是我的代码 它在我的本地计算机上运行 import java io import java util import java
  • 使用 SSIS 将数据从 Oracle 导入到 SQL Server 时出现代码页错误

    我在 SSIS 包中的 OLEDB 源上收到以下警告 警告 1 验证警告 数据流任务 20582F6F DD9C 45F5 8727 992F525E67DC 无法检索该列 来自 OLE DB 提供程序的代码页信息 如果组件支持 Defau
  • Google Adsense 中的 Javascript 错误

    在我的几个运行 AdSense 的网站上 我收到以下错误 无法将消息发布到 http googleads g doubleclick net http 5Dgoogleads g doubleclick net 收件人有来源http www
  • 系统调用:sys_exit()、SYS_exit 和 exit() 之间的区别

    SYS exit sys exit 和 exit 之间有什么区别 我的理解是 Linux内核提供了系统调用 这些调用在man 2 syscalls 这些系统调用的包装函数由glibc它们的名称与系统调用大多相似 我的问题 在man 2 sy
  • 如何在 JavaScript 中通过方括号访问私有字段

    这段代码的工作原理 class Test field get field return this field 但如果我想计算字段名称我必须使用方括号 但它不起作用 class Test field get field return this
  • 项目未出现在“gcloud 项目列表”中

    我在 Google Cloud 控制台中添加了一个项目 但使用 gcloud SDK gcloud 项目列表 未显示该项目 我是在做一些愚蠢的事情还是我错过了什么 Edit 您是否为新帐户使用不同的凭据 否 该帐户是在控制台和sdk控制台上
  • 用户在对话框中输入

    python 中是否有任何库可用于图形用户输入 我知道关于tk但我相信需要一些代码才能做到这一点 我正在寻找最短的解决方案 a input Enter your string here 取而代之的是 我想要一个对话框 以便用户可以在那里输入
  • 什么是好的规格? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 中的一项乔尔测试 http www joelonsoftware com articles fog0000000043 html是一个
  • 如何在 SSRS 中将多个值传递给多值参数

    我将通过过度简化报告结构来尽力解释这个问题 第一份报告包含 1 个名为 资源中心 的组 然后在其下包含一行总计 总计实际上是一个组 但分组是在 SQL 中完成的 并显示在详细信息组中 该报告看起来像这样 Report 1 ResourceC
  • 清除 Laravel 队列缓存而不重新启动

    在我的应用程序中 每个客户都有一种复杂的类 我们在其中为该特定客户进行一些搜索和替换 我运行队列工作人员每天与 eBay 同步 以便每个客户进行某种搜索和替换 问题是 Laravel 队列会缓存代码很长一段时间 如果我想去更改任何客户类文件
  • 如何使用 Javascript 更改具有相同类名的多个元素?

    跟进至我之前的问题 https stackoverflow com q 42389937 2803565 我想使用 JS 使用按钮来显示 隐藏具有相同类名的多个元素 但似乎我只能更改具有特定类名的第一个元素 并且页面上具有相同类名的所有其他
  • Android - 如何创建布局选择器(如 ImageButton 选择器)

    我有一个 ImageButton 和一个包裹该按钮的 LinearLayout 如下所示
  • Rxjava 中“背压”一词是什么意思?

    我是 RxJava 的初学者 我很好奇 背压 这是否意味着生产者在背后给消费者施压 或者这是否意味着消费者正在向生产者施加压力 反方向施压 RxJava 背压 当你有一个 observable 发射物品的速度太快 以至于消费者无法跟上流量
  • 循环遍历类为“blah”的所有元素并找到最高的 id 值

    我有很多元素 例如 div class blah div 我想循环遍历所有这些并获得最高的 ID 即 123 这个怎么做 以下是正确的和最好的方法吗 blah each function var id this attr id split
  • 在 Windows 应用商店应用程序中进行模拟

    我可能不是第一个出于测试目的而在 Windows 商店应用程序中处理模拟的人 我想测试我的 ViewModel 并使用一些模拟框架来模拟它们 当然 所有可用的 通用 框架都不能在 Windows 应用商店应用程序项目中使用 我有一个想法如何
  • 返回“application/xml”而不是“text/plain”ASP.NET Core Web API

    我有一个 XML 字符串 我需要将其作为 XML 文档返回 默认情况下 返回的内容类型为text plain 内容已呈现 但我需要内容类型application xml 我启用了 RespectBrowserAcceptHeader 选项