我已经成功安装了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。
非常感谢任何有关如何解决此问题的建议。
答案 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());