向 MailChimp 添加新订阅者返回错误请求
Posted
技术标签:
【中文标题】向 MailChimp 添加新订阅者返回错误请求【英文标题】:Adding new subscriber to MailChimp returns Bad Request 【发布时间】:2017-05-21 09:30:12 【问题描述】:为了使用 API 3.0 将订阅者添加到 MailChimp 列表,需要参数 e-mailadress 和 status。如果请求成功,响应将包含 json 格式的 id。
我的问题是,当我使用成员类添加订阅者时,请求发送的 id 为空,因此我收到错误错误请求。如何将我的成员类更改为仅从响应中读取 id 而不在请求中添加它?我正在使用 RestSharp、Visual Studio 2013、.Net 4.0,
我的成员类是这样的
public class Member
public Member()
public Member(string status)
this.status = status;
public Member(string email_address, string status)
this.status = status;
this.email_address = email_address;
public string id get; set;
public string email_address get; set;
public string status get; set;
我的 createMember 函数如下所示:
static void createMember()
var client = new RestClient();
client.BaseUrl = new Uri("https://" + dc + ".api.mailchimp.com/3.0");
//html Basic Authentification
client.Authenticator = new HttpBasicAuthenticator(usernsme, apiKey);
var request = new RestRequest(Method.POST);
request.Resource = "lists/list_id/members";
request.AddUrlSegment("list_id", listId);
request.RequestFormat = DataFormat.Json;
request.AddBody(new Member(memberEmail, "subscribed"));
RestClient.AddHandler();
IRestResponse<Member> response2 = client.Execute<Member>(request);
string _id = response2.Data.id;
Console.WriteLine(response.StatusCode);
Console.WriteLine(_id);
如果我从成员类中删除 id,我可以将订阅者添加到列表中,但是如何从响应中获取 Id 并使用它?
【问题讨论】:
【参考方案1】:根据their reference,你调用的API方法有不同的请求体参数和响应体参数,所以我建议使用两个不同的类。第一个是MemberRequest
,用于请求,没有id
字段
public class MemberRequest
public MemberRequest()
public MemberRequest(string status)
this.status = status;
public MemberRequest(string email_address, string status)
this.status = status;
this.email_address = email_address;
public string email_address get; set;
public string status get; set;
第二个是MemberResponse
,用于响应并具有id
字段
public class MemberResponse
public string id get; set;
public string email_address get; set;
public string status get; set;
这是您的 createMember
方法的样子
static void createMember()
var client = new RestClient();
client.BaseUrl = new Uri("https://" + dc + ".api.mailchimp.com/3.0");
//HTML Basic Authentification
client.Authenticator = new HttpBasicAuthenticator(usernsme, apiKey);
var request = new RestRequest(Method.POST);
request.Resource = "lists/list_id/members";
request.AddUrlSegment("list_id", listId);
request.RequestFormat = DataFormat.Json;
request.AddBody(new MemberRequest(memberEmail, "subscribed"));
IRestResponse<MemberResponse> response = client.Execute<MemberResponse>(request);
string _id = response.Data.id;
Console.WriteLine(response.StatusCode);
Console.WriteLine(_id);
【讨论】:
非常感谢。这正是我想要的。以上是关于向 MailChimp 添加新订阅者返回错误请求的主要内容,如果未能解决你的问题,请参考以下文章
发生一个或多个错误。(发送请求时发生错误)Mailchimp 列表集成
MailChimp 重新订阅已删除的成员会导致 API 返回 400 错误请求