Json retrofit+jackson 转换器的响应
Json response from retrofit+jackson convertor
我想知道是否可以在成功响应时将响应 body 作为字符串访问。在这里,我获得了成功:
serviceOne.editionsGet(Device, new Callback<Editions>() {
@Override
public void success(Editions editions, Response response) {
//here i get my results
}
@Override
public void failure(RetrofitError error) {
showErrorToast();
}
});
我想它可以在 body 中的 body 响应中。如果是如何从中得到字符串 body.
InputStream is = response.getBody().in();
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
String body = sb.toString()
它应该可以通过 response.getBody().toString()
访问。
editions
应该是retrofit返回的Object,自己实现
response
应该是retrofit返回的response body,里面包含了body,可以通过getBody().toString()
方法作为String访问。
好吧,使用 JSONNode 你可以获得 json 响应
ApiInterface apiService =
ApiClient.getClient().create(ApiInterface.class);
Call<JsonNode> call = apiService.setDevice("application/json","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRoX3Rva2VuIjoiMjY5NTUzNzIyOSIsImxvZ2luX2lkIjoiUlY1OTk3In0.NnPNRVUgaQnRBiza9yXM8FJf069Hb2ROtFw2mdlqK3w",rawJsonData());
call.enqueue(new Callback<JsonNode>() {
@Override
public void onResponse(Call<JsonNode>call, Response<JsonNode > response) {
Log.e("MAIN",response.body().toString());
/* Model model=response.body();
model.getstatus();*/
}
@Override
public void onFailure(Call<JsonNode>call, Throwable t) {
// Log error here since request failed
Log.e("MAIN", t.toString());
}
});
就用这个
@POST("device")
Call<JsonNode> setDevice(@Header("Content-Type") String content_type, @Body Device parm);
我想知道是否可以在成功响应时将响应 body 作为字符串访问。在这里,我获得了成功:
serviceOne.editionsGet(Device, new Callback<Editions>() {
@Override
public void success(Editions editions, Response response) {
//here i get my results
}
@Override
public void failure(RetrofitError error) {
showErrorToast();
}
});
我想它可以在 body 中的 body 响应中。如果是如何从中得到字符串 body.
InputStream is = response.getBody().in();
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
String body = sb.toString()
它应该可以通过 response.getBody().toString()
访问。
editions
应该是retrofit返回的Object,自己实现
response
应该是retrofit返回的response body,里面包含了body,可以通过getBody().toString()
方法作为String访问。
好吧,使用 JSONNode 你可以获得 json 响应
ApiInterface apiService =
ApiClient.getClient().create(ApiInterface.class);
Call<JsonNode> call = apiService.setDevice("application/json","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRoX3Rva2VuIjoiMjY5NTUzNzIyOSIsImxvZ2luX2lkIjoiUlY1OTk3In0.NnPNRVUgaQnRBiza9yXM8FJf069Hb2ROtFw2mdlqK3w",rawJsonData());
call.enqueue(new Callback<JsonNode>() {
@Override
public void onResponse(Call<JsonNode>call, Response<JsonNode > response) {
Log.e("MAIN",response.body().toString());
/* Model model=response.body();
model.getstatus();*/
}
@Override
public void onFailure(Call<JsonNode>call, Throwable t) {
// Log error here since request failed
Log.e("MAIN", t.toString());
}
});
就用这个
@POST("device")
Call<JsonNode> setDevice(@Header("Content-Type") String content_type, @Body Device parm);