【问题标题】:Neo4j REST API Get request from browser vs Get method from REST ClientNeo4j REST API 从浏览器获取请求与从 REST 客户端获取方法
【发布时间】:2016-08-13 21:27:12
【问题描述】:

Neo4j API 网址为:http://localhost:7474/db/data

当我使用 Chrome 访问这个 url 时,这是一个 GET 请求。这是我得到的回复

但是当我使用 POSTMAN 等 RESTful 客户端发出 g 请求时。

这是我收到的回复。

我的问题是

两者都是对同一个 url 的 GET 请求。为什么 Chrome 浏览会得到一个 html 页面作为回报,但 Postman 请求得到 JSON 响应作为回报。

Neo4j 是如何做到的?

Neo4j 是否使用了用户代理检测,如果是浏览器访问,它会给出 HTML 页面作为响应。而如果是rest客户端请求,会给出json响应?

谢谢!

【问题讨论】:

  • 他们使用内容协商标头,主要是Accept - 例如我对该站点的请求包含以下标头:Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
  • 感谢 Mszymoborski!我尝试在 POSTMAN 的 GET 请求中设置 Accept 标头,是的!这次我得到了html页面。

标签: rest neo4j


【解决方案1】:

他们使用媒体类型协商标头。例如,当我请求这个站点时,我的浏览器会发送一个这样的标题:

Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"

如您所见,它主要接受html,如果不可用则xhtml,然后纯xml,如果不可用 - 它接受服务器可以向它抛出的任何内容。 Neo4j 的网站尝试按该顺序提供内容。 Postman 可能只指定 application/json,或者什么都不指定(应用程序随后确定默认媒体类型),因此响应。

【讨论】:

    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多