gpt4 book ai didi

c# - 如何在 azure 函数中禁用 XML 序列化

转载 作者:行者123 更新时间:2023-11-30 12:22:03 25 4
gpt4 key购买 nike

当我从浏览器访问我的 azure 函数 (C# HttpTrigger) 时,我收到带有错误消息的 XML 响应,而不是 JSON 响应。

这是预料之中的,因为响应中包含一个 JObject,它可以很好地序列化为 JSON,但不能序列化为 XML,并且浏览器的 Accept header 要求优先选择 XML 而不是 JSON。

我可以使用一种解决方法,通过摆弄浏览器的 Accept header (插入 application/json;q=0.95)来获得正确的响应,但我真正想要的是禁用 XML 序列化Azure Function,因为我的函数无论如何都不会兼容 XML。

有没有办法删除或禁用 Azure Functions 中的 XML 格式化程序,以便它“忘记”它可以序列化为 XML,并且请求 header 中的任何 application/xml 都将被忽略?而是让 JSON 格式化程序优先,尽管请求要求首选 XML?

最佳答案

经过一番挖掘,我找到了一个有效的答案。事实证明,HttpRequestMessageExtensions.CreateResponse 扩展方法(扩展 HttpRequestMessage)有多个重载,其中一些重载允许显式指定结果媒体类型。

所以而不是

return req.CreateResponse(HttpStatusCode.OK, returnObject);

我必须写

return req.CreateResponse(HttpStatusCode.OK, returnObject, "application/json");

获得我想要的行为。

关于c# - 如何在 azure 函数中禁用 XML 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42636106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com