我写了以下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”:“无法解析基于请求的正文 内容类型\“application / json \” ERROR_BODY_DOES_NOT_MATCH_CONTENT_TYPE“}
这是详细的服务器响应
- 在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握手,客户端问候(1):
- SSLv3,TLS握手,服务器问候(2):
- SSLv3,TLS握手,CERT(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 Ltd; CN = *。dotmailer.com
- 开始日期:2012-01-16 15:51:40 GMT
- 到期日期:2015-01-16 15:51:40 GMT
- subjectAltName:api.dotmailer.com matching
- 发行人:C = BE; O = GlobalSign nv-sa; CN = GlobalSign组织验证CA-G2
- SSL证书验证确定。
- 使用Basic和用户'username'的服务器身份验证 * POST / v2 / contacts HTTP / 1.1 *授权:基本XXXpdXNlci0zNGFmNWU0NTdmYTJAYXBpY29ubmVjdG9yLmNvbTpzaW1vbmUxMjM =
- User-Agent:curl / 7.37.0
- 主持人:api.dotmailer.com
- 接受:application / json
- Content-Type:application / json
- 内容长度:72
- 上传已完全发送:72个字节中的72个
- HTTP / 1.1 400错误请求
- 缓存控制:无缓存
- Pragma:no-cache
- Content-Type:application / json;字符集= UTF-8
- 到期:-1
- 日期:星期四,2014年7月24日08:46:46 GMT
- 内容长度:139
{“message”:“无法解析基于请求的正文 内容类型\“application / json \” ERROR_BODY_DOES_NOT_MATCH_CONTENT_TYPE“}
连接#0主机api.dotmailer.com完好无损
有人能指出我正确的方向让我的命令正确吗? 感谢。
答案 0 :(得分:1)
您在-d中的数据似乎不是json格式。尝试jsonlint验证json格式。或者,如果您尝试发布文本数据,请使用text / plain作为Content-type。