obr*_*rob 26 rest json request-headers
当我发出请求时,我得到了一个XML响应,但我需要的是JSON.在文档中,为了获得JSON而声明:使用Accept: application/json
HTTP标头.
我在哪里可以找到要放入的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
指令设置的报头和它的值.
这是一个方便的网站来测试您的标头。您可以查看浏览器标头,还可以使用 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
。那应该可以完成工作。
归档时间: |
|
查看次数: |
135688 次 |
最近记录: |