dependencies {
    ...
    compile ‘com.squareup.retrofit:retrofit:1.9.0‘
    ...
}
dependencies {
    ...
compile ‘com.squareup.okhttp:okhttp-urlconnection:2.0.0‘
compile ‘com.squareup.okhttp:okhttp:2.0.0‘
    ...
}下面的例子是使用Retrofit进行一次简单的异步GET请求,返回的值为String类型
首先定义一个接口,在接口中声明一个方法来定义请求的相关内容
    interface User {
        @GET("/user/list.json")
        void getUsers(@Query("pagesize") int pagesize, Callback<String> callback);
    }
@GET表明该请求为GET方式,除此之外还有@POST, @PUT, @DELETE, 和@HEAD,具体的作用请参考官方文档,由于篇幅原因,这里不再叙述。
@Query为参数声明
Callback< String > 为回调接口,String表明返回数据结果就为String类型
然后创建一个RestAdapter对象,代码如下
RestAdapter restAdapter = new RestAdapter.Builder()
                .setEndpoint(CTX).setConverter(new BaseConverter())
                .build();setEndpoint方法指定了请求地址的前半部分,即服务器地址,如 https://api.github.com
setConverter方法需要一个转换接口的实现类作为参数,该类的作用是将请求得到的InputStream转换为想要的类型,示例代码如下
public class BaseConverter implements Converter {
    @Override
    public Object fromBody(TypedInput body, Type type) throws ConversionException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        int i = -1;
        String response = "";
        try {
            while ((i = body.in().read()) != -1) {
                baos.write(i);
            }
            response = baos.toString();
            baos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response;
    }
    @Override
    public TypedOutput toBody(final Object object) {
        return new TypedOutput() {
            @Override
            public String fileName() {
                return null;
            }
            @Override
            public String mimeType() {
                return "String";
            }
            @Override
            public long length() {
                return object == null ? 0 : object.toString().length();
            }
            @Override
            public void writeTo(OutputStream out) throws IOException {
                out.write(object.toString().getBytes());
            }
        };
    }
}
当得到了一个restAdapter 对象后,调用restAdapter的create方法得到User接口的实现类
        Callback<String> callback = new Callback<String>() {
            @Override
            public void success(String s, Response response) {
            }
            @Override
            public void failure(RetrofitError error) {
            }
        }
        User user = getAdapter().create(User.class);
        //指定请求参数和回调接口的实现类
        user.getUsers(12,callback);如果需要进行代码混淆,配置如下
-dontwarn retrofit.**
-keep class retrofit.** { *; }
-keepattributes Signature
-keepattributes ExceptionsAndroid Studio下使用Retrofit进行网络请求
原文地址:http://blog.csdn.net/duanymin/article/details/45873065