使用curl将用户订阅到MailChimp列表中,总是返回"We encountered an unspecified JSON parsing error"错误

我有一个创建批处理文件的应用程序,然后被调用

我需要向MailChimp列表添加一个订户

curl.exe -v --request POST --url "https://us11.api.mailchimp.com/3.0/lists/list_id/members" --user "anystring:api_key" --header "content-type: application/json" --data "{"email_address":"urist.mcvankab+3@freddiesjokes.com", "status":"subscribed"}" --include

我已按照建议更新请求,但仍然出现错误。是的,看起来双引号是此处的问题。

{"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/","title":"JSON解析错误","status":400,"detail":"我们遇到了一个未指明的JSON解析错误。","instance":""}

注意:不必使用-X或--request,POST已经被推断出了。
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   正在尝试 92.123.199.167...
* 已连接到 us11.api.mailchimp.com (92.123.199.167) 端口 443 (#0)
* ALPN, 提供 h2
* ALPN, 提供 http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* 成功设置证书验证位置:
*   CAfile: C:\DevPB\Epos\ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [104 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [2662 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [333 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [70 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=US; ST=Georgia; L=Atlanta; O=The Rocket Science Group, LLC; OU=IT; CN=*.api.mailchimp.com
*  start date: May  3 00:00:00 2016 GMT
*  expire date: May  3 23:59:59 2017 GMT
*  subjectAltName: host "us11.api.mailchimp.com" matched cert's "*.api.mailchimp.com"
*  issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3
*  SSL certificate verify ok.
* 使用Basic进行服务器身份验证,用户名为'anystring'
} [5 bytes data]
> 发送 HTTP 请求,正在等待回应...  
> POST /3.0/lists/XXXXXXXX/members HTTP/1.1
> Host: us11.api.mailchimp.com
> Authorization: Basic XXXXXXXXXXXXXXXXXXXXX
> User-Agent: curl/7.50.1
> Accept: */*
> content-type: application/json
> Content-Length: 69
>
} [69 bytes data]
* 已完成上传:69/69 字节
{ [5 bytes data]
< HTTP/1.1 400 Bad Request
< Server: openresty
< Content-Type: application/problem+json; charset=utf-8
< Content-Length: 203
< X-Request-Id: 145d8a92-f4c5-4a83-8e1f-f72cf7850c45
< Link: <https://us11.api.mailchimp.com/schema/3.0/ProblemDetailDocument.json>; rel="describedBy"
< Date: Wed, 18 Jan 2017 13:42:59 GMT
< Connection: close
< Set-Cookie: _AVESTA_ENVIRONMENT=prod; path=/
<
{ [203 bytes data]
100   272  100   203  100    69    419    142 --:--:-- --:--:-- --:--:--   419
* 已关闭连接 0
} [5 bytes data]
* TLSv1.2 (OUT), TLS alert, Client hello (1):
} [2 bytes data]

C:\DevPB\Epos>
点赞
用户2953344
用户2953344

这可能是由于 Windows 终端不支持单引号引起来的数据。请用双引号替换您的数据。例如:

--data "{\"email_address\"...}"

另外,试着在运行命令时使用 -v 开关打开调试输出。如果不起作用,请更新您的问题并附上输出。

2017-01-18 11:11:55