Java 我可以使用loopj异步HTTP客户端将数据发送到PHP页面吗?
我已成功安装loopj异步http客户端,在执行此代码时遇到此问题: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();
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防火墙