【问题标题】:drupal 7 services rest not returning jsondrupal 7服务休息不返回json
【发布时间】:2019-09-19 23:50:21
【问题描述】:

我已经成功创建了一个 web 服务,我可以调用它,但它总是返回 XML。我尝试在 url 末尾添加 .json 和 'accept: application/json' 标头,但是当我调用这些时,它返回空白并返回 200 响应。

完成的配置(管理员/结构/服务)是:

  • 编辑选项卡:创建了一个“端点路径”= loginapi 和启用调试的休息服务
  • 服务器选项卡:响应格式化程序和解析都已检查(包括 json)
  • 资源选项卡:检查用户下的所有内容,没有任何别名
  • domain.com/loginapi/user/login --> 这很完美,我可以登录并返回 xml,添加 .json (login.json) 不会返回任何内容

请问我怎样才能完成这项工作?我浏览了所有文档和示例,但没有一个适合我

谢谢

【问题讨论】:

    标签: json drupal drupal-7


    【解决方案1】:

    检查你的服务器配置如下:Services API

    然后使用curl -H "Accept: application/json" -i https://your.domain/endpoint 验证您的端点。返回头应该有Content-Type: application/json

    【讨论】:

      【解决方案2】:

      要从 Drupal 返回 JSON,请检查 drupal_json_output 函数(它为您设置 HTTP Content-Type 标头)。专业提示:如果您的端点是通过 hook_menu 定义的,您可以将 'delivery callback' => 'drupal_json_output' 添加到您的菜单项中,以告诉 Drupal 您的页面回调的返回值应该转换为输出。

      但是,如果您的菜单项具有“访问回调”,这将不起作用。由于 Drupal 核心内部的某些技术原因,如果访问检查失败,则返回 3 而不是 403 状态。我希望我能记得半年前我第一次解决这个问题时是如何解决的:-(

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-26
        • 1970-01-01
        • 2015-05-02
        • 2014-08-10
        • 1970-01-01
        • 2018-06-19
        • 2015-03-12
        • 2015-09-15
        相关资源
        最近更新 更多