Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以使用loopj异步HTTP客户端将数据发送到PHP页面吗?_Java_Php_Android_Android Handler_Android Async Http - Fatal编程技术网

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

Java 我可以使用loopj异步HTTP客户端将数据发送到PHP页面吗?,java,php,android,android-handler,android-async-http,Java,Php,Android,Android Handler,Android Async Http,我已成功安装loopj异步http客户端,在执行此代码时遇到此问题: protected void PostData(Integer Question_ID,Integer ResponseChosen_ID) throws IOException { AsyncHttpClient client = new AsyncHttpClient(); final RequestParams params1 = new RequestParams();

我已成功安装loopj异步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) {

            }
        });
错误:

异步HttpClient中使用的同步响应处理器。您应该在循环器线程中创建响应处理程序,或者改用SyncHttpClient

这是因为UI线程,但使用此客户机的全部意义在于它可以绕过UI线程异常并执行http请求

没有日志


如果您能就如何解决此问题提供任何建议,我将不胜感激。

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

如果希望从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);
        }
    });

您可以使用以下解决方法调用
PostData()

new Handler(Looper.getMainLooper()).post(new Runnable(
   {
    @Override
    public void run()
    {
        postData();
    }
})) ;
这正是一个UI线程问题。

php代码:

ob_start();
error_reporting(0);

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

在Android上的mainActivity类中仅此方法可能您正在mainActivity中的运行线程中运行此方法?是的,但仍应执行请求,对吗?然后使用
SyncHttpClient=new asynchtpclient()
在postData()方法中,loopJ asynchtpclient确定正在运行的线程。我需要将数据读入读取器中,还是可以使用php superglobals显示?还是需要使用JSON错误消息的哪一部分不清楚?它说使用looper或
SyncHttpClient
。logcat中没有要报告的内容没有失败没有异常没有错误没有我已经在onSuccess方法调用周围放置了一个日志。但是没有打印内容只是在android Popup上打印了一个200的状态码我完全误解了这个客户端了吗?我可以使用这个客户端发送数据吗到php网页正确吗?是的,你可以,它是一个广泛使用的网络库。你知道为什么我不能在php端显示我的数据吗?我不知道还有什么可以尝试的,因为我尝试了内置的http客户端,我尝试了第三方。有人告诉我可能有什么东西阻塞了套接字,或者我在生产环境中试过的什么东西也可能是你的windows/linux防火墙