android – 使用Retrofit访问带密钥/ id的API

我还没有真正找到关于此的明确文档,但我想知道是否有人可以指出我使用Retrofit(或OKHTTP或更合适的东西)的东西,以便从需要API的API下拉JSON流ID和API密钥(例如从终端访问数据:curl -v -H“app_id:appid”-H“app_key:appkey”-X GET“http://data.leafly.com/strains/blue-dream”).

我查看了Square网站上的官方文档,但是如果还有其他任何东西可以帮助我将数据拉下来那将是非常棒的.

谢谢!

最后的答案

RestAdapter.Builder builder= new RestAdapter.Builder()
            .setEndpoint( "http://data.leafly.com/" )
            .setRequestInterceptor(new RequestInterceptor() {
                @Override
                public void intercept(RequestInterceptor.RequestFacade request) {
                    request.addHeader("app_id", "id");
                    request.addHeader("app_key", "key");
                }
            });

    final RestAdapter restAdapter = builder.build();

new Thread( new Runnable() {
        @Override
        public void run() {
            LeaflyService service = restAdapter.create(LeaflyService.class);
            final Strain strain = service.data("blue-dream");

            runOnUiThread( new Runnable() {
                @Override
                public void run() {
                    mText.setText( strain.getDescription() );
                }
            } );
        }
    } ).start();

加上应变模型,只适合数据.

解决方法:

要发送ID和密钥,您需要修改HTTP标头.您似乎可以使用@Header annotation在Retrofit中执行此操作.

上一篇:android – 格式化rails API的RetroFit post请求


下一篇:android – 使用Dagger时分离RestAdapter.build()和.create()方法的原因是什么?