java - Java 中的 MailChimp 集成

标签 java rest mailchimp mailchimp-api-v3.0

我想将 MailChimp API 集成到我的 java 项目中。当我使用 HttpURLConnection 类调用 Rest 调用时,它会响应 401 代码。

这是我的代码:

URL url = new URL("https://us13.api.mailchimp.com/3.0/lists");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "apikey <my-key>");

String input = "<json data>";

OutputStream os = conn.getOutputStream();
//os.write(input.getBytes());
os.flush();

if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
    throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
}

BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
    System.out.println(output);
}

conn.disconnect();

最佳答案

我建议使用Apache Commons Codec用于编码的包。 支持Base64、十六进制等多种格式。

之前我也遇到过同样的问题。我正在分享我在应用程序中用于对 Mailchimp API v-3.0 进行身份验证的代码

//basic imports
import org.apache.commons.codec.binary.Base64;
.
.
.
 //URL to access and Mailchimp API key 
String url = "https://us9.api.mailchimp.com/3.0/lists/";
//mailchimp API key 
String apikey = xxxxxxxxxxxxxxxxxxxxxxxxxxx

// Authentication PART

String name = "Anything over here!";
String password = apikey;     //Mailchimp API key
String authString = name + ":" + password;

byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);

URL urlConnector = new URL(url);
HttpURLConnection httpConnection = (HttpURLConnection)           urlConnector.openConnection();
httpConnection.setRequestMethod("GET");
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
httpConnection.setRequestProperty("Accept", "application/json");
httpConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);

InputStream is1 = httpConnection.getInputStream();
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(is1, "utf-8"));

String line = null;
while ((line = br.readLine()) != null) {
    sb.append(line + "\n");
            }
br.close();

现在您可以使用 StringBuilder 对象sb根据需要解析输出

希望它能解决您的问题:)

关于java - Java 中的 MailChimp 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812453/

相关文章:

java - 我对 java 线程和 KeyEvents 有疑问吗?

rest - 如何在 REST 客户端上测试我发布的 LEX 机器人

html - 我可以在电子邮件模板中使用 DIV 吗?

email - 是否可以在没有 Mandrill 的情况下使用 Mailchimp 发送交易电子邮件?

java - 关于 java servlet 过滤器的测验,答案不清楚

Java 时间表达式求值

java - 使用 LIMIT 和 MySQL 的 ORDER BY

java - 仅使用四种 HTTP 方法创建任何类型的 RESTful API?

java - REST 错误响应和客户端-服务器 POJO 序列化

php - Mailchimp API v3.0 添加待处理成员无需确认电子邮件