当我尝试使用Retrofit访问MailChimp的api时,API密钥总是丢失

时间:2016-01-05 21:25:53

标签: android curl retrofit mailchimp mailchimp-api-v3.0

对于知道自己在做什么的人,我确信这不是问题,但这是我第一次使用MailChimp的api和改造。基本上,我的api密钥总是丢失。当你包含api密钥时,我不知道MailChimp的正确网址是什么样的。

我正在尝试的网址是:

IBOutlet

其他那种

http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#create-post_lists_list_id_members

  

curl --request GET \

     

- url'https://. api.mailchimp.com/3.0/'\

     

- 用户'anystring:your_apikey'

这说GET,但我正在尝试发帖。

这是我的android / java代码......

/3.0/lists/613cd953b2/members?user=email@gmail.com:apikey

我如何定义我的界面方法

final OkHttpClient client = new OkHttpClient();
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    client.interceptors().add(interceptor);


    client.interceptors().add(new Interceptor() {
        @Override
        public com.squareup.okhttp.Response intercept(Chain chain) throws IOException {
            Request original = chain.request();

            Request.Builder requestBuilder = original.newBuilder()
                   // .header("Authorization", basic)
                    .header("user", "email@gmail.com:apikey");

            Request request = requestBuilder.build();
            return chain.proceed(request);
        }
    });

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    //Create interface instance
    MailChimpAPI apiService = retrofit.create(MailChimpAPI.class);

    Email chimpEmail = new Email("hi@hi.hi");

    Call<Email> call = apiService.addUser(chimpEmail);
    call.enqueue(new Callback<Email>() {
        @Override
        public void onResponse(Response<Email> response, Retrofit retrofit) {
            int statusCode = response.code();
            //Log.d("tag", "enter the void");
            Log.d("tag", statusCode + "");
            Log.d("tag", client.toString());
        }

        @Override
        public void onFailure(Throwable t) {
            Log.d("tag", t.toString());
        }
    });

我的改造日志......

@POST("/3.0/lists/613cd953b2/members")
Call<Email> addUser(@Body Email email);

1 个答案:

答案 0 :(得分:3)

我没有正确使用基本身份验证。我按照本教程

https://futurestud.io/blog/android-basic-authentication-with-retrofit

它修正了我的错误!是的新错误!

对未来的人来说,也许这可能对你有帮助。

BASIC AUTHORIZATION不仅仅是描述某事的一种方式!这是一个实际的概念,可实施!哈哈