【问题标题】:API endpoint returns text before and after the JSON content, causing parsing errorAPI端点在JSON内容前后返回文本,导致解析错误
【发布时间】:2017-05-09 17:57:28
【问题描述】:

我正在使用邮递员来测试调用休息服务端点。

我正在尝试解析 JSON 返回内容,但它会引发错误,因为响应正文不仅仅是 JSON。

这就是我在邮递员测试脚本中解析它的方式:

var jsonData = JSON.parse(responseBody);

这是响应正文:

--13398550-b6ea-4731-a8ee-4b2ad24c3cfe
Content-Type: application/json; charset=utf-8

//this is the actual content I want to parse --->
{"id":"123456","value":"the_value"}

--13398550-b6ea-4731-a8ee-4b2ad24c3cfe--

当我尝试解析它时,我收到以下错误(在邮递员中)

评估测试脚本时出错:SyntaxError: JSON 中第 3 位的意外数字

显然是因为被解析的内容不只是 JSON

这是 api 正在做的特别的事情吗?还是我只是解析不正确?

注意:我不包括其余服务功能的详细信息。如果这个问题的原因是服务本身正在做的事情,那么这足以让我回答另一个问题或做一些进一步的调查。这个问题的目的是询问这是否是在 HTTP 中所做的特殊事情,或者它是否是服务。

编辑:

我设法看到了服务器端代码,它确实是手动构建响应,其边界由 GUID 标识。我将不得不手动解析响应

【问题讨论】:

    标签: json rest api http postman


    【解决方案1】:

    服务器没有直接发出 application/json,它被打包在一个多部分的 mime 信封中。

    它是否正确执行取决于响应标头。如果您不期望多部分响应,而是简单的 JSON 响应,那么我会说是的:这是您需要在服务器端修复的东西。

    【讨论】:

    • 太好了,这就是我想知道的,我将不得不找出服务器在做什么
    • 或者看看我是否可以在邮递员中解析多部分响应
    • 我同意,两者都可能是一个可行的结果。这不一定是错的。我会说这对于典型的 API 来说是不寻常的。多部分的东西只在少数情况下使用
    猜你喜欢
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2012-06-25
    相关资源
    最近更新 更多