1

我已经构建了一个基于 Guzzle 的 API 客户端,自 3.4.2 版以来,它在 Content-Type 标头中添加了一个 utf-8 字符集。使用此标头,Asana API 返回 400 Bad Request 错误,而没有字符集则一切正常。

这不适用于 POST 和 PUT 请求:

内容类型:application/x-www-form-urlencoded;字符集=utf-8

这有效:

内容类型:application/x-www-form-urlencoded;

使用 curl 作为最简单的示例:

这个失败了:

curl -u {apikey}: https://app.asana.com/api/1.0/projects -d "name=Test" -d "notes=Test." -d "workspace={workspace-id}" --header "Content-Type: application/x-www-form-urlencoded; charset=utf-8"

使用以下输出返回 400 错误请求:

{"errors":[{"message":"请求数据必须是 JSON 对象,不能为空"}]}

这个成功了:

curl -u {apikey}: https://app.asana.com/api/1.0/projects -d "name=Test" -d "notes=Test." -d "workspace={workspace-id}" --header "Content-Type: application/x-www-form-urlencoded;"

这将返回使用发送的数据创建的 201。

其他 POST 和 PUT 请求也会发生这种情况。这是 Asana API 中的错误还是预期行为?

4

1 回答 1

3

(我在 Asana 工作。)我们已经确认这是一个错误。修复应该在第二天左右生效。感谢您的报告!

于 2013-05-02T21:44:45.157 回答