gpt4 book ai didi

openrasta - 在 OpenRasta 中使用编解码器文件扩展名返回 404

转载 作者:行者123 更新时间:2023-12-01 13:02:51 28 4
gpt4 key购买 nike

在 OpenRasta 中使用编解码器 uri 文件扩展名时,或者无法解析 uri 并返回 404。没有文件扩展名一切正常。

编解码器是为对象资源定义的,我同时使用 XmlDataContract 和 JsonDataContract。使用 .xml 或 .json 扩展名都不起作用,这适用于 InMemoryHost(我们用于测试)和 ASP.Net(IIS7,集成模式)。

编解码器配置:

ResourceSpace.Has.ResourcesOfType<object>()
.WithoutUri
.AsXmlDataContract()
.And.AsJsonDataContract();

要使 uri 文件扩展名正常工作,还需要做些什么吗?

最佳答案

您需要在 OpenRasta 中将 ContentTypeExtensionUriDecorator 注册为 UriDecorator,以便公开 .xml、.json 功能。

下面的示例应该允许您向以下地址发出 http 请求:

获取/home.json

获取/home.xml

public class RastaConfig : IConfigurationSource
{
public void Configure()
{
using(OpenRastaConfiguration.Manual)
{
ResourceSpace.Uses.UriDecorator<ContentTypeExtensionUriDecorator>();

ResourceSpace.Has.ResourceOfType<Home>()
.AtUri("/home")
.HandledBy<HomeHandler>()
.AsXmlDataContract()
.And.AsJsonDataContract();
}
}
}

这是因为客户端通常会添加一个 HTTP Accept header 来定义它支持和感兴趣的内容类型。

有关详细信息,您可以在网络上阅读内容协商(通常称为 conneg)。

OpenRasta 然后将根据客户端在 HTTP 接受 header 中的偏好选择返回内容类型。

希望这对您有所帮助。

关于openrasta - 在 OpenRasta 中使用编解码器文件扩展名返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956103/

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