【问题标题】:ServiceStack custom format and vendor specific content typesServiceStack 自定义格式和供应商特定的内容类型
【发布时间】:2012-10-20 02:59:55
【问题描述】:

我正在尝试为 HAL(超文本应用程序语言)添加自定义格式。我创建了自定义格式处理程序,并遵循了 ServiceStack v-card 示例,一切正常,我能够将其注册到 ServiceStack。

问题是在我的自定义格式中,我试图指定“hal+json”的内容类型

当我向我的服务发出 GET 请求并指定格式时:

'http://mylocalserver:555555/items?format=hal+json'

ServiceStack 默认只使用 Json。我尝试将内容类型更改为不同的内容,例如“halj”和使用自定义格式化程序的 ServiceStack 格式请求,这些请求使用“?format=halj”。

我下载了 ServiceStack 的源代码,发现其中的任何请求都会检查查询字符串的格式,如果格式包含“json”,它将默认为 Json 格式化程序。

有没有办法解决这个问题?我一直在尝试查找一些有关如何覆盖此行为的文档。

【问题讨论】:

    标签: servicestack hypermedia


    【解决方案1】:

    不幸的是,+ 是 url 上的一个特殊变量。尝试使用 Url 对其进行编码,例如:

    http://mylocalserver:555555/items?format=hal%2Bjson
    

    【讨论】:

    • 这对我不起作用。我将我的 HAL json 格式化程序的内容类型设置为使用 application/hal+json 并尝试使用 ?format=hal%2Bjson 发出请求,但它只是默认为 html。但是,我确实发现我可以将接受标头设置为 application/hal+json 并且效果很好。所以我想我只是不能使用 hal+json 指定内容类型的 url 方法,但这不是 ServiceStack 的问题,它只是一个 url 的事情。感谢您的帮助!
    • 好的,我会考虑让它在带有 ?format=hal+json 的未来版本的 SS 中更好地工作,并将遇到未编码的“”转换回所需的 +,这样它就可以工作了正如预期的那样。
    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2017-06-02
    • 2012-02-19
    • 1970-01-01
    相关资源
    最近更新 更多