我可以使用loopj异步HTTP客户端将数据发送到PHP页面吗?

时间:2016-02-19 20:36:09

标签: java php android android-handler android-async-http

我已经成功安装了loopj async http客户端,我在执行此代码时遇到了这个问题:

 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) {

            }
        });

错误:

  

AsyncHttpClient中使用的同步ResponseHandler。您应该在looper线程中创建响应处理程序,或者使用SyncHttpClient。

这是因为UI线程,但使用此客户端的重点是它可以绕过UI线程异常并执行http请求吗?

没有logcat。

非常感谢任何有关如何解决此问题的建议。

3 个答案:

答案 0 :(得分:2)

您可以使用以下解决方法调用async

PostData()

这正是UI线程问题。

答案 1 :(得分:1)

我在几个项目中使用了loopJ AsyncHttpClient,我能知道你实现loopJ的整个代码/类吗?

如果您希望使用php中的String

,则应该像这样实现客户端
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);
        }
    });

答案 2 :(得分:0)

php代码:

ob_start();
error_reporting(0);

var_dump($_REQUEST);
var_dump(headers_list());