每次我从互联网上尝试一些HTTPRequest示例时,它们都无法正常工作。所以我把它混合在一起,并做了这个: ` 包com.devwild.httpwerkgodverdomme;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public static void getdata(View view) {
try {
URL url = new URL("http://devwild.nl/zermelo/calll.php?school=carmelhengelo&koppelcode=742138265794");
URLConnection con = url.openConnection();
InputStream in = con.getInputStream();
String encoding = con.getContentEncoding();
encoding = encoding == null ? "UTF-8" : encoding;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[8192];
int len = 0;
while ((len = in.read(buf)) != -1) {
baos.write(buf, 0, len);
}
String body = new String(baos.toByteArray(), encoding);
System.out.println(body);
}catch(IOException e) {
e.printStackTrace();
}
}
}`
它在普通的JAVA(javac和编译)中工作得很好,但是当我把它放在android studio中它只是不起作用时给了我这个错误:
我该如何解决?
注意:是的,我确实在互联网上尝试了很多例子(~50)
答案 0 :(得分:0)
您正在获得NetworkOnMainThreadException。只需将您的网络相关电话放在新的Thread
或AsyncTask
中即可解决此问题。
您可以在我提供的链接中找到它是如何完成的,或者只是用Google搜索它。
答案 1 :(得分:0)
确保您有权在Manifest和代码中访问网络和互联网: http://developer.android.com/training/basics/network-ops/connecting.html 并在新线程或asynctask中启动它: http://developer.android.com/guide/components/processes-and-threads.html