My Java Restful服务登录方法在ResponseBuilder实体中返回JSONObject(带有名称,用户名等)。我试图在我的Android应用程序中将其放入AsyncHttpResponseHandler(使用loopj)。问题是:onSuccess方法需要byte []响应,而不是JSONObject。如何在onSuccess方法中获取JSONObject以便在我的应用程序中使用它的值(用户数据)?
这是我的代码:
My Restful API登录方法
public Response login(@Context HttpHeaders httpHeaders,
@FormParam("username") String username,
@FormParam("password") String password) {
Authenticator authenticator = Authenticator.getInstance();
String serviceKey = httpHeaders
.getHeaderString(HTTPHeaderNames.SERVICE_KEY);
try {
// My login method returns an JSONObject with data of the logged user
JSONObject obj = authenticator
.login(serviceKey, username, password);
return getNoCacheResponseBuilder(Response.Status.OK).entity(obj)
.build();
} catch (final LoginException ex) {
return getNoCacheResponseBuilder(Response.Status.UNAUTHORIZED)
.entity(ex.getMessage()).build();
}
}
我的应用上的登录方式:
private void loginTask(RequestParams params){
AppRestClient.post("access/login", params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// Here I want to get the JSONObject, but response is
// returning something like [B@653abba
Log.d(TAG, response);
}
...
}
我应该将byte []转换为JSONObject(如果是,我该怎么做?)还是应该更改ResponseBuilder实体以返回与JSONObject不同的内容?
我已经尝试使用JsonHttpResponseHandler类,但响应为空。