可能重複請求時被拋出:
Android HttpClient : NetworkOnMainThreadException例外執行HTTP GET從安卓
我有一個PHP腳本,臨危獲得請求的服務器上,並郵寄出去的內容。 因此,讓我們說我們有http://url.com/testmail.php?message=somemessage
「消息」的內容將通過電子郵件發送。
我希望我的應用程序能夠調用此腳本,並在請求中插入它自己的消息。它將主要用於用戶反饋。我知道使用POST會更好,如果有一些可以本地處理郵件的android函數,請在我新的時候給予啓發。
這是我在裏面我的主要活動「的onCreate」此刻的代碼,它是產生異常:
HttpClient httpClient = new DefaultHttpClient();
String url = "http://someurl/testmail.php?message=eventualjavavariable";
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse response = httpClient.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = response.getEntity();
ByteArrayOutputStream out = new ByteArrayOutputStream();
entity.writeTo(out);
out.close();
String responseStr = out.toString();
// do something with response
} else {
// handle bad response
}
} catch (ClientProtocolException e) {
// handle exception
} catch (IOException e) {
// handle exception
}
我也有我的Android清單文件中加入這一行:
<uses-permission android:name="android.permission.INTERNET"/>
我在做什麼錯了?
這是我的logcat:
10-09 15:12:33.185: E/AndroidRuntime(5561): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.fragments/com.example.android.fragments.MainActivity}: android.os.NetworkOnMainThreadException
10-09 15:12:33.185: E/AndroidRuntime(5561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-09 15:12:33.185: E/AndroidRuntime(5561): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-09 15:12:33.185: E/AndroidRuntime(5561): at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-09 15:12:33.185: E/AndroidRuntime(5561): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
從'onCreate()'中刪除與網絡相關的操作並將其放入'AyncTask'中。 – user370305