从git有一个这样的建议 但我不知道如何使用它,在哪里打电话,任何提示都可能有用 retrofit允许转换json,xml,但我需要作为对象,转换数据和字符串以及
@GET("whatever")
Call<Pair<User, String>> whatever();
Type firstType = //reflection
Converter<ResponseBody, Object> delegate = retrofit.nextResponseBodyConverter(firstType, annotations);
return new Converter<ResponseBody, Pair<Object, String>>() {
@Override public Pair<Object, String> convert(ResponseBody body) {
String string = body.string();
Object object = delegate.convert(ResponseBody.create(null, string));
return new Pair<>(object, string);
}
};
答案 0 :(得分:0)
请先检查Retrofit documentation。它很有用。
您还可以浏览this教程。它有点长,但它足够好了。
总而言之,您需要做四件事:
答案 1 :(得分:0)
如果您的@GET请求收到类似的内容:
{
"user": {
"id": 1,
"name": "John"
},
"str": "Hello World"
}
接口:
public interface MyInterface {
@GET("/api/user/1")
Call<ResponseBody> getMyObject();
}
提出请求:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://server.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
MyInterface service = retrofit.create(MyInterface.class);
service.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Response<ResponseBody> response, Retrofit retrofit) {
String raw = response.body().string();
MyObject object = new Gson().fromJson(raw, MyObject.class);
}
@Override
public void onFailure(Throwable t) {
}
});