当前位置: 首页 > 知识库问答 >
问题:

REST API-使用“接受:应用程序/json”HTTP头

朱俭
2023-03-14

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

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

我猜它不应该在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

共有3个答案

狄宗清
2023-03-14

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

在fiddler中,您需要在请求头中指定html,而不是xml,您需要将其更改为json。例如:Accept:application/json。这应该能解决问题。

朱锦
2023-03-14

这里有一个方便的网站来测试你的标题。你可以看到你的浏览器标题,也可以使用cURL来反射你发送的任何标题。

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

Accept标题首选纯文本,因此以该格式返回:-

$ curl -H "Accept: application/json;q=0.9,text/plain" http://gethttp.info/Accept
application/json;q=0.9,text/plain

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

$ curl -H "Accept: application/json,text/*;q=0.99" http://gethttp.info/Accept
{
   "Accept": "application/json,text/*;q=0.99"
}
强才捷
2023-03-14

你猜对了,HTTP头不是URL的一部分。

当你在浏览器中输入一个URL时,请求将以标准标题发出。无论如何,REST API不应该通过在浏览器的地址栏中键入endpoint来使用。

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

为此,服务器端代码会伪造一个正确的GET(/PUT/POST/DELETE)请求,该请求指向给定的endpoint(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'

H--header指令设置头及其值。

 类似资料:
  • 问题内容: 当我发出请求时,我得到了XML响应,但是我需要的是JSON。在文档中进行了说明,以获取JSON作为回报:使用HTTP标头。 在哪里可以找到HTTP标头? 我的猜测是它不是应该位于URL请求中,它看起来像: 问题答案: 您猜对了,HTTP标头不是URL的一部分。 而且,当您在浏览器中键入URL时,将使用标准标头发出请求。无论如何,不​​要通过在浏览器的地址栏中键入终结点来使用REST A

  • 问题内容: 我是Go的新手,我正在尝试构建一个简单的HTTP服务器。但是我在JSON响应中遇到了一些问题。我编写了以下代码,然后尝试邮递员发送一些JSON数据。但是,我的邮递员总是得到空响应,而is 。然后,我在http://www.alexedwards.net/blog/golang-response- snippets#json中 检查了一个示例。我复制并粘贴了示例,并且效果很好。但是我看不

  • 我一直在使用贝宝的IPN来处理交易。我想构建一个发票搜索工具,以便能够出于各种原因搜索旧的或当前的用户付款。我今天花了一些时间设置PayPalPHP REST API SDK来促进这一点,并做了以下工作。 > 我创建了一个ApiContext使用启动的OAuthTokenCredential。 我创建了一个搜索对象使用广泛的日期跨度,我100%肯定应该返回结果。 然后,我利用搜索对象和API上下文

  • 问题内容: 因此,我正在使用C#开发一个应用程序以从Web读取一些信息,但这是一个Windows窗体应用程序。我得到一个JSON字符串,我需要从中获取一些信息。我知道有一个用于C#Web应用程序的库,但是如何在Windows窗体应用程序中使用呢? 问题答案: 那里有许多JSON库。您可以考虑以下三个建议: Json.NET ,一个相当流行的JSON(反序列化)库。 ****根据 ServiceSt

  • 我使用clojure web应用程序作为代理web服务器。 我的所有请求都进入这个clojure ring web应用程序,然后我使用clj http将请求发送到最终目的地。 因此,到目前为止,我将此作为一个简单的解决方案,只需为每个请求调用。这段代码与我正在做的非常相似。 但这还不够好,因为每次发出请求时,都会初始化一个新的http客户端。我需要连接池,以便正确地重用http客户端。 关于持久连

  • 问题内容: 我试图从下面的curl输出中获取说“ ip”的值: 我在互联网上发现了许多示例来解析curl请求的json输出,并且编写了以下代码,但这似乎并没有给我说“ ip”的值 如果有人可以向我提示我需要添加到代码中以获得“ ip”值的提示,我将不胜感激。 问题答案: 您可以创建结构来模仿json结构,然后对json进行解码。 输出为: 通过将其解码为一个结构,您可以循环遍历任何切片,而不会局限