我尝试使用带有基本身份验证的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
我将其作为标题发送。
我做错了什么..?
答案 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());
}
}