1

我能够成功运行 curl,但无法处理 mailchimp API 的 python 请求。它给出了一个错误like urllib2.HTTPError: HTTP Error 401: Unauthorized

卷曲

curl --request POST \
--url 'https://us9.api.mailchimp.com/3.0/lists' \
--user 'anystring:6a983664930fc8ba1eecdsdf334344f40-us9' \
--header 'content-type: application/json' \
--data '{"name":"My test","contact":{"company":"Cool","address1":"Awesome place","city":"Lanka","state":"MH","zip":"43472","country":"IN","phone":""},"permission_reminder":"You'\''re receiving this email because you signed up.","campaign_defaults":{"from_name":"VD","from_email":"hey@sdfsdf.com","subject":"","language":"en"},"email_type_option":true}' \
--include

Python请求:

import urllib2
import json
import requests
url = 'https://us9.api.mailchimp.com/3.0/lists/'

all_params={"user":"my_username:6a983664930fc8ba1eecd1d5d68f4f40-us9",
           "name":"My test",
           "contact":{"company":"Cool","address1":"Awesome place","city":"Lanka","state":"MH","zip":"43472","country":"IN","phone":""},"permission_reminder":"You'\''re receiving this email because you signed up.","campaign_defaults":{"from_name":"VD","from_email":"hey@sdfsdf.com","subject":"","language":"en"},
           "email_type_option":'true'}

post_data = urllib2.quote(json.dumps(all_params))
headers = {'Content-Type': 'application/json'}
request = urllib2.Request(url, post_data, headers) 
response = urllib2.urlopen(request)

我已经提到将 cURL 转换为 Python 请求但没有奏效。

4

1 回答 1

0

我已经解决了。这是数据中心的 URL 问题。我使用的是 us9.api... 而不是 us6.api.mailchimp.com/3.0/lists,因为我的帐户是在 us6 下创建的。因此,我需要使用我的帐户注册的数据中心,并在请求中使用我的 URL。

于 2017-02-10T19:47:30.587 回答