对于Android,loopj中的响应字符串为空

时间:2013-03-21 08:43:31

标签: android rest response loopj

这是我用于使用loopj的异步Http请求的代码。

AsyncHttpClient loopjClient = new AsyncHttpClient();

    PersistentCookieStore loopjCookieStore = new PersistentCookieStore(this);
    loopjClient.setCookieStore(loopjCookieStore);

    RequestParams loopjParams = new RequestParams();
    loopjParams.put("username", username);
    loopjParams.put("email", emailID);
    loopjParams.put("password", password);
    Log.d(TAG, "RRRRRRlll");

    loopjClient.post("http://www.example.com/", loopjParams, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int k,String response) {
            super.onSuccess(k, response);
            Log.d(TAG, "RRRRRR "+ response );
        }


    });

我的服务器响应字符串只是以下内容而没有HTML标记

{"AUTHENTICATION":{"SUCCESS":false,"USERNAME":"unregistered","USERID":0},"ALERTBOX":{"SHOW":true,"MESSAGE":"Message : Username or email ID already registered. Please choose a different one."}}

loopj不会在onSuccess()中打印上述字符串。

你能说出如何获取字符串,还是我必须回到默认的Android http库?

提前致谢。

修改

而不是'example'(我的网站)如果我用'facebook'替换它我只是得到以下字符串作为响应200响应代码<?xml version="1.0" encoding="utf-8"?>

1 个答案:

答案 0 :(得分:1)

由于AUTHENTICATION的结果失败,我想知道您的服务器返回的状态代码是否不是200.您可以覆盖onFailure方法来处理这种情况。

@Override
public void onFailure(Throwable e) {
    Log.d(TAG, e.toString());
}


修改
另一个猜测,您是否在Manifest.xml中添加了以下行?

<uses-permission android:name="android.permission.INTERNET" />


再次编辑
我看到了你的编辑,似乎你有一个错误的LogCat,因为@ shailendra-rajawat在评论中提到,因为LogCat只打印了第一行。请尝试Toast:

@Override
public void onSuccess(int k, String response) {
    Toast.makeText(getBaseContext(), response, 1).show();
}

我找到this post来配置你的LogCat,也许你可以尝试一下。 (我的是5000 FYI)