Могу ли я использовать loopj асинхронный HTTP-клиент для отправки данных на страницу PHP?

Я успешно установил асинхронный http-клиент loopj, и у меня возникла эта проблема при выполнении этого кода:

 protected void PostData(Integer Question_ID,Integer ResponseChosen_ID) throws IOException {
AsyncHttpClient client = new AsyncHttpClient();
final RequestParams params1 = new RequestParams();
params1.add("Question_ID",Question_ID.toString());
client.post("http://10.0.2.2:443/SwlLogin.php", params1, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
System.out.print(params1);
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

}
});

Ошибка:

Синхронный ResponseHandler используется в AsyncHttpClient. Вы должны создать свой обработчик ответа в зацикленном потоке или использовать вместо него SyncHttpClient.

Это из-за потока пользовательского интерфейса, но весь смысл использования этого клиента состоит в том, что он может обойти исключение потока пользовательского интерфейса и выполнить запрос http?

Логкатов нет.

Любые советы о том, как решить эту проблему, будут высоко оценены.

1

Решение

Вы можете позвонить PostData() со следующим обходным путем

new Handler(Looper.getMainLooper()).post(new Runnable(
{
@Override
public void run()
{
postData();
}
})) ;

Это точно проблема потока пользовательского интерфейса.

2

Другие решения

Я использовал loopJ AsyncHttpClient для нескольких проектов. Могу ли я узнать весь код / ​​класс, который вы реализуете loopJ?

Вы должны реализовать свой клиент, как это, если вы ожидаете String от вашего PHP

client.post("http://10.0.2.2:443/SwlLogin.php", params1, new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
Log.d("RESPONSE", responseString);
}

@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
Log.d("RESPONSE", responseString);
}
});
1

PHP-код:

ob_start();
error_reporting(0);

var_dump($_REQUEST);
var_dump(headers_list());
0
По вопросам рекламы [email protected]