- 论坛徽章:
- 19
|
Android不能直接访问MySQL数据库,我百度了一下,网上的例子是用一个PHP页面作为中介来访问,我不会PHP,因此只好用JSP来完成,作了一个类似的页面,可是Android程序运行起来之后系统还是提示无法访问网络。我用Android上的浏览器访问 http://10.0.2.2:8080/Information_Release_System_Manager/上的页面没有问题,可是用我自己的程序访问的时候,系统地日志里面的数据显示是无法访问网络。
- <?php
- mysql_connect("localhost","yourName","yourPassword");
- mysql_select_db("yourDB");
- $q=mysql_query("SELECT * FROM user_info WHERE uName ='".$_REQUEST['name']."'");
- while($e=mysql_fetch_assoc($q))
- $output[]=$e;
- print(json_encode($output));
- mysql_close();
- ?>
复制代码下面就是Android端的程序代码了,基本也是从网上拷贝的 - private static final String ip = "http://10.0.2.2:8080/Information_Release_System_Manager/";
复制代码- public int login(String jsp, String user, String password) {
- int status = 0;
- NameValuePair param1 = new BasicNameValuePair("username", user);
- NameValuePair param2 = new BasicNameValuePair("password", password);
- List<NameValuePair> data = new ArrayList<NameValuePair>();
- data.add(param1);
- data.add(param2);
- HttpClient client = new DefaultHttpClient();
- HttpPost request = new HttpPost(ip + jsp);
- try {
- request.setEntity(new UrlEncodedFormEntity(data));
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- try {
- HttpResponse response = client.execute(request);
- HttpEntity entity = response.getEntity();
- InputStream is = entity.getContent();
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- is, "iso-8859-1"));
- String line = null;
- if ((line = reader.readLine()) != null) {
- Log.i("resurn String", line);
- status = Integer
- .parseInt(line.substring(line.indexOf("=") + 1));
- }
- } catch (ClientProtocolException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return status;
- }
复制代码 |
|