我已经构建了一个基于Guzzle的API客户端,因为版本3.4.2在Content-Type标头中添加了一个utf-8字符集。使用此标头,Asana API返回400 Bad Request错误,而没有charset的东西工作正常。
这不适用于POST和PUT请求:
Content-Type: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 Bad Request:
{“errors”:[{“message”:“请求数据必须是JSON对象,而不是null”}}
这个成功了:
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中的错误还是预期的行为?
答案 0 :(得分:3)
(我在Asana工作。)我们已经证实这是一个错误。修复应该在第二天左右。谢谢你的举报!