Json 使用cURL过帐数据时出错

Json 使用cURL过帐数据时出错,json,powershell,post,curl,Json,Powershell,Post,Curl,我已经编写了以下curl命令 curl -v -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -u username:password -d 'Id=5&Email=add@ress.com&OptInType=0&EmailType=0&DataFields=null&Status=0}' https://api.dotmailer.com/v2/c

我已经编写了以下curl命令

curl -v -X POST -H 'Accept: application/json' 
-H 'Content-Type: application/json' -u username:password 
-d 'Id=5&Email=add@ress.com&OptInType=0&EmailType=0&DataFields=null&Status=0}' 
https://api.dotmailer.com/v2/contacts
但是,当我在Powershell中运行时,它返回以下错误

“message”:“无法基于 内容类型\“应用程序/json\” 错误\u正文\u不匹配\u内容\u类型“}

这是详细的服务器响应

  • 在DNS缓存中找不到主机名
  • 正在尝试94.143.104.204
  • 连接到api.dotmailer.com(94.143.104.204)端口443(#0)
  • 已成功设置证书验证位置:
  • CAfile:C:\Program Files\cURL\bin\cURL-ca-bundle.crt CApath:none
  • SSLv3,TLS握手,客户端hello(1):
  • SSLv3,TLS握手,服务器hello(2):
  • SSLv3,TLS握手,证书(11):
  • SSLv3,TLS握手,服务器完成(14):
  • SSLv3、TLS握手、客户端密钥交换(16):
  • SSLv3,TLS更改密码,客户端你好(1):
  • SSLv3,TLS握手,完成(20):
  • SSLv3,TLS更改密码,客户端你好(1):
  • SSLv3,TLS握手,完成(20):
  • 使用TLSv1.0/AES128-SHA的SSL连接
  • 服务器证书:
  • 主题:C=GB;ST=英格兰;L=伦敦;OU=DDG;O=dotMailer有限公司;CN=*.dotmailer.com
  • 开始日期:2012-01-16 15:51:40 GMT
  • 过期日期:2015-01-16 15:51:40 GMT
  • subjectAltName:api.dotmailer.com匹配
  • 发行人:C=BE;O=全球信号内华达州;CN=全球签名组织验证CA-G2
  • SSL证书验证正常
  • 使用用户“用户名”的Basic进行服务器身份验证 *POST/v2/contacts HTTP/1.1 *授权:基本XXXPDXNLCI0ZNGFMWU0NTDMYTJAYXBPY29UBMVJDG9YLMNVBTPZAW1VBMUXMJM=
  • 用户代理:curl/7.37.0
  • 主持人:api.dotmailer.com
  • 接受:application/json
  • 内容类型:application/json
  • 内容长度:72
  • 上传已完全发送:72个字节中有72个
  • HTTP/1.1400错误请求
  • 缓存控制:没有缓存
  • Pragma:没有缓存
  • 内容类型:application/json;字符集=utf-8
  • 过期:-1
  • 日期:2014年7月24日星期四08:46:46 GMT
  • 内容长度:139
{“message”:“无法基于 内容类型\“应用程序/json\” 错误\u正文\u不匹配\u内容\u类型“}

0到主机api.dotmailer.com的连接保持不变

有人能给我指出正确的方向,让我的命令正确吗?
谢谢。

您在-d中的数据似乎不是json格式。尝试验证json格式。或者,如果您试图发布文本数据,请使用text/plain作为内容类型。

我知道。我还尝试了json格式
{“Id”:5,“Email”:add@ress.com“,“DataFields”:null,“Status”:0}
但我仍然会收到与上面相同的错误消息。是的,正如我在前面的评论中所说的那样。