执行HTTP请求时出现NetworkOnMainThreadException

时间:2015-09-11 15:51:46

标签: android mysql http-post

我像整个互联网一样搜索,但没有答案可以帮助我。

我正在尝试从MySQL数据库中获取数据字符串,但只是出现此'andoid.os.NetworkOnMainThreadException'错误。有谁可以帮助我?

这是我的代码:

public String getInformationForBarcode(String barcode) {
    try {

        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://www.example.com"); // Yes, i changed this in live code to my url with data in it
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        final String response = httpClient.execute(httpPost,
                responseHandler);
        return response.trim();
    } catch (Exception e) {
        System.out.println("ERROR : " + e.toString());
        return "error";
    }          
}

是的,我设置了

<uses-permission android:name="android.permission.INTERNET" />

我得到的只是LogCat中的错误信息:(

希望你们中的一个可以帮助我!

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

当您尝试与数据库建立连接时,最好在另一个线程中执行此操作以避免应用程序崩溃,因为此类操作可能需要很长时间。您可以使用AsyncTask在后​​台执行这些操作。查看开发人员网站,了解有关任务http://developer.android.com/reference/android/os/AsyncTask.html

的更多信息