连接到 MailChimp v3.0 API
Posted
技术标签:
【中文标题】连接到 MailChimp v3.0 API【英文标题】:Connection to MailChimp v3.0 API 【发布时间】:2016-05-02 18:02:29 【问题描述】:我在连接到新的 MailChimp 3.0 API 时遇到问题(2.0 可以正常工作)。
我想发送一些订阅者。我究竟做错了什么?我可能试图以错误的方式发送apikey
(HTTP 基本身份验证)。文档在这里,但我无法使其工作:http://developer.mailchimp.com/documentation/mailchimp/guides/get-started-with-mailchimp-api-3/。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"https://us12.api.mailchimp.com/3.0/lists/<listnumber>/members/");
string json = @"
""email_address"": ""test@test.com"",
""status"": ""subscribed"",
""merge_fields"":
""FNAME"": ""Urist"",
""LNAME"": ""McVankab""
";
byte[] data = Encoding.UTF8.GetBytes(json);
request.Method = "POST";
request.Headers.Add("user", "<mykeynumber>");
request.ContentType = "application/json";
request.ContentLength = data.Length;
using (System.IO.Stream stream = request.GetRequestStream())
stream.Write(data, 0, data.Length);
【问题讨论】:
您看到什么样的错误? 【参考方案1】:主要问题似乎是身份验证。这是demonstrates HTTP Basic Auth with HTTPWebRequest
的一个很好的答案。
【讨论】:
非常感谢,链接有帮助。所以 header 应该是:request.Headers.Add("Authorization", "Basic " + apikey); 很高兴有帮助。请注意,HTTP Basic Auth 要求“基本”之后的部分是 Base64 编码的字符串,如果这是您想要做的。【参考方案2】:其他人来这里,我一直在玩,我认为此时最好使用 ASP.NET Web API 库来调用它。我按照这个例子得到了这个工作:https://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client
并将其与该问题的答案合并:Calling MailChimp API v3.0 with .Net
该示例使用一个简单的 Windows 控制台应用程序,但可以移植到 Web:
// New code:
static HttpClient client = new HttpClient();
static void Main()
RunAsync().Wait();
static async Task RunAsync()
// New code:
client.BaseAddress = new Uri( "https://us5.api.mailchimp.com/3.0/" );
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue( "application/json" ) );
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", "<YOUR_API_KEY_HERE>" );
try
HttpResponseMessage response = await client.GetAsync( "" );
if ( response.IsSuccessStatusCode )
var results = await response.Content.ReadAsStringAsync();
Console.WriteLine( $"results (HTTP Status = results)" );
else
Console.WriteLine( $"ERROR (HTTP Status = response.StatusCode" );
catch ( Exception e )
Console.WriteLine( e.Message );
Console.ReadLine();
【讨论】:
以上是关于连接到 MailChimp v3.0 API的主要内容,如果未能解决你的问题,请参考以下文章
为啥在连接到 mailchimp API 3.0 时出现 401 错误
无法连接到 us15.api.mailchimp.com 端口 443:超时