Mailchimp RESTful API 3.0 HTTP基本身份验证

时间:2015-06-19 10:20:48

标签: asp-classic mailchimp mailchimp-api-v3.0

我尝试使用带有基本身份验证的Mailchimp API 3.0版。我使用的是经典ASP。

Json响应总是:" API Key Missing"。

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "https://us4.api.mailchimp.com/3.0/", False
HttpReq.setRequestHeader "Content-Type", "application/json"
HttpReq.setRequestHeader "apikey", "xxxxxx"
HttpReq.send ""
Response.Write  HttpReq.ResponseText
Set HttpReq = Nothing

我将其作为标题发送。

我做错了什么..?

3 个答案:

答案 0 :(得分:6)

答案是:

public static String myToString(List<?> list) {
    StringBuilder stringList = new StringBuilder();
    String delimiter = " ";
    for (int c = 0; c < list.size(); c++) {
        stringList.append(delimiter);
        stringList.append(list.get(c));
    }
    return stringList.toString();
}

答案 1 :(得分:1)

如果您尝试使用基本身份验证,则需要实际follow the spec。您可以使用wiki文章作为指南自己构建标题,但最简单的方法是使用HTTP库的内置支持。在您的情况下,this will probably help

要自己动手,需要两条信息。第一个是用户名,第二个是密码。对于MailChimp v3.0,用户名可以是任何内容。我倾向于使用&#39; apikey&#39;作为用户名。密码是API密钥本身。我们说我的API密钥是&x; xxxxxxxxxx-yyy&#39;。现在,你Base 64编码字符串apikey:xxxxxxxxxx-yyy。这给了我YXBpa2V5Onh4eHh4eHh4eHgteXl5。现在我创建的标题是:

Authorization: Basic YXBpa2V5Onh4eHh4eHh4eHgteXl5

您正在使用的方法可以使用,但对MailChimp来说非常自定义,可能会让将来的访问者与您的代码混淆。

答案 2 :(得分:0)

我看到这个问题是基于#C的,但我遇到了与java相同的问题。(我是java的新手,因此可以自由编辑我的代码)。

public String get(String url) throws IOException {
     HttpGet get = new HttpGet(url);
     String apiEncode = "apikey:9590e52MyAPI8-us9";
     String encoding = Base64.encodeBytes(apiEncode.getBytes());                     
     get.setHeader("Authorization","Basic " + encoding );
     HttpResponse response = http.execute(get);

    if (response.getEntity() != null) {
        return EntityUtils.toString(response.getEntity(), "UTF-8").trim();
    } else {
        throw new IOException(response.getStatusLine().toString());
    }
}