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ライブラリにフォールバックする必要がありますか?

前もって感謝します。

編集

'example'(私のサイト)の代わりに'facebook'に置き換えると、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 にバグがあるようです。代わりにトーストを試してください:

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

LogCat の構成に関するこの投稿を見つけたので、試してみてください。(私のは参考までに5000です)

于 2013-03-21T08:50:08.530 に答える