我们遇到了使用MailChimp API V3将成员添加到列表的问题。 这里是我们的代码:在MailChimp API V3中订阅用户
client.BaseAddress = new Uri("https://us12.api.mailchimp.com/3.0/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic", "API Key");
var reply = await client.GetStringAsync("lists");
var list = JsonConvert.DeserializeObject<ListResults>(reply);
AddMembers member = new AddMembers {
EmailAddress = "[email protected]",
Status = "subscribed"
};
string url = "lists/" + list.Data[0].Id + "/members";
string jsonData = JsonConvert.SerializeObject(member);
var content = new StringContent(
jsonData,
Encoding.UTF8,
"application/json");
HttpResponseMessage addMember = await client.PostAsync(url, content);
而这正是MailChimp预计:
--url 'https://usX.api.mailchimp.com/3.0/lists/57afe96172/members' \
--user 'anystring:apikey' \
--header 'content-type: application/json' \
--data '{"email_address":"[email protected]", "status":"subscribed"}'
但我们下面的代码后得到:
HttpResponseMessage addMember = await client.PostAsync(url, content);
是一个 '错误的请求' 消息StatusCode'400'。我们真的很困惑,也许有些简单的东西缺失。
尝试通过在代码的一部分中放置'Console.WriteLine()'语句来调试它。例如,在发出POST请求之前,“url”属性的值是多少?该URL是否正确导出? –
网址生成正确。我们事先检查过它。此外,内容字段是发布的最终JSON,就像mailchimp期望的数据一样。顺便说一句,因为mailchimp的协议是https,我们不能使用fiddler调试我们发布的值。 –
你应该从MailChimp发布错误响应体,它通常会告诉你问题是什么。可能是“[email protected]”被选为伪造地址? – TooMuchPete