可能重复请求时被抛出:
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