REST API - 使用"Accept:application/json"HTTP标头

obr*_*rob 26 rest json request-headers

当我发出请求时,我得到了一个XML响应,但我需要的是JSON.在文档中,为了获得JSON而声明:使用Accept: application/jsonHTTP标头.

我在哪里可以找到要放入的HTTP标头Accept: application/json

我的猜测是不应该在URL请求中,这看起来像:

http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00
Run Code Online (Sandbox Code Playgroud)

Pao*_*olo 49

您猜对了,HTTP标头不是URL的一部分.

当您在浏览器中键入URL时,将发出带有标准标头的请求.无论如何,通过在浏览器的地址栏中键入端点,不打算使用REST Apis.

最常见的情况是您的服务器使用第三方REST Api.

为此,您的服务器端代码伪造一个正确的GET(/ PUT/POST/DELETE)请求,指向给定的端点(URL)设置(在需要时,如您的情况)一些标头,最后(可能)发送一些数据(如通常在POST请求中发生,例如).

伪造请求,发送请求并最终获得响应的代码取决于您的服务器端语言.

如果要测试 REST Api,可以使用curl命令行中的工具.

curl 发出请求并将响应输出到stdout(除非另有说明).

在您的情况下,测试请求将发出如下:

$curl -H "Accept: application/json" 'http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00'
Run Code Online (Sandbox Code Playgroud)

H--header指令设置的报头和它的值.

  • 在不同请求标头值之间进行测试的另一种方法是下载并使用 Postman 客户端。它需要一些设置,但用于测试 REST API。 (3认同)

Ech*_*lon 8

这是一个方便的网站来测试您的标头。您可以查看浏览器标头,还可以使用 cURL 反射您发送的任何标头。

例如,您可以像这样验证内容协商。

Accept标头更喜欢纯文本,因此以该格式返回:-

$ curl -H "Accept: application/json;q=0.9,text/plain" http://gethttp.info/Accept
application/json;q=0.9,text/plain
Run Code Online (Sandbox Code Playgroud)

而这个更喜欢 JSON,因此以该格式返回:-

$ curl -H "Accept: application/json,text/*;q=0.99" http://gethttp.info/Accept
{
   "Accept": "application/json,text/*;q=0.99"
}
Run Code Online (Sandbox Code Playgroud)


小智 5

基本上我使用 Fiddler 或 Postman 来测试 API。

在fiddler中,在请求标头中,您需要指定而不是xml,html,您需要将其更改为json。例如:Accept: application/json。那应该可以完成工作。