我想在Android设备上阅读一些日期我已加载到物理服务器上的mysql数据库。 提取数据的数据库和php脚本都可以。 问题是android编码方面。
public class MainActivity extends Activity {
public HttpResponse response;
public String str;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("/*phpAddressIsCorrect*/");
try {
response = httpclient.execute(httppost);
}
catch(IOException e) {
e.printStackTrace();
}
try {
str = EntityUtils.toString(response.getEntity());
} catch(IOException e){
e.printStackTrace();
}
Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
}
}
main.xml
只是RelativeLayout
。
借助互联网的Android许可,应用程序在加载时崩溃。我认为这是因为IOException,不是吗?
答案 0 :(得分:1)
网络总是需要在另一个线程(不是UiThread)中完成。
new Thread() {
public void run() {
HttpURLConnection con = (HttpURLConnection) new URL("http://xyz").openConnection();
String response = StreamToString(con.getInputStream());
// ...
}
}.start();
public static String StreamToString(java.io.InputStream is) {
java.util.Scanner scanner = new java.util.Scanner(is);
scanner.useDelimiter("\\A");
String ret = scanner.hasNext() ? scanner.next() : "";
scanner.close();
return ret;
}