我已经构建了一个基于Guzzle的API客户端,从版本3.4.2开始,将utf-8字符集添加到Content-Type标头。 Asana API使用这个头部返回一个400错误请求错误,而没有字符集的事情工作正常。将utf-8字符集添加到POST请求时的400错误请求
这并不在岗位工作和PUT请求:
内容类型:应用程序/ x-WWW的形式,进行了urlencoded;字符集= UTF-8
这工作:
内容类型:应用/ X WWW的窗体-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错误的请求:
{ “错误”:[{ “消息”:“请求数据必须是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或预期行为中的错误吗?
(我在Asana工作。)这可能是我们系统中的一个错误。我们会调查并回报。 – 2013-05-02 14:56:55