0

这是我使用 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 库?

提前致谢。

编辑

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

4

1 回答 1

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();
}

我发现这篇文章用于配置您的 LogCat,也许您可​​以尝试一下。(我的是 5000 仅供参考)

于 2013-03-21T08:50:08.530 回答