如何从Mailchimp的url中提取access_token

时间:2012-05-30 14:33:58

标签: java jsp servlets mailchimp

http://127.0.0.1:8080/Mailchimp/Access#access_token=^^^^^^^^^^^^^^^^^^^^^^^^^&expires_in=0

这是我的mailchimp网址,如何通过java提取access_token

还有另一种获取访问令牌但获取响应消息的方法 - 错误请求

URL siteUrl = new URL("https://login.mailchimp.com/oauth2/token");
        HttpURLConnection conn = (HttpURLConnection) siteUrl.openConnection();
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);
        conn.setDoInput(true);

        DataOutputStream out = new DataOutputStream(conn.getOutputStream());

        String content = "?grant_type=authorization_code&client_id=^^^^^^^^^^&client_secret=^^^^^^^^^^^^^^^^^^^^^^^^&code="+auth_code+"&redirect_uri=http://127.0.0.1:8080/Mailchimp/Access";

        out.writeBytes(content);
        System.out.println(content);
        out.flush();
        out.close();
        System.out.println(conn.getResponseMessage());

1 个答案:

答案 0 :(得分:1)

#之后的部分称为“片段”或“引用”。这是提取相关部分的基本方法:

public static String getAccessToken(String uriString) {
    URI uri = URI.create(uriString);
    String[] parameters = uri.getFragment().split("\\&");
    for (String parameter : parameters) {
        String[] parts = parameter.split("\\=");
        if (parts[0].equals("access_token")) {
            if (parts.length == 1) {
                throw new RuntimeException("missing access token");
            }
            return parts[1];
        }
    }
    throw new RuntimeException("no access token");
}