php+mysql+json android 连接wamp

参考 http://blog.sina.com.cn/s/blog_6923201d01011t6h.html

     http://www.cnphp6.com/archives/106137


遇到的问题:

  1. 找不到NameValuePair cannot be resolve....,  

  2.  ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

    解决方法: build path中删除无效的jar路径,添加  eclipse安装路径下 sdk\platforms\android-23\optional  路径下的jar文件

  3. 在主线程中不能进行耗时操作以及在非UI线程中,禁止修改UI:

    修改部分代码如下:

  4.  		b1.setOnClickListener(new Button.OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				new Thread(){
    					@SuppressWarnings("deprecation")
    					@Override
    					public void run() {
    						 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    			              // http get
    			              try {
    			                  HttpClient httpclient = new DefaultHttpClient();
    			                  HttpGet httpget = new HttpGet(
    			                         "http://wlan_address:80/test.php");
    //			                  HttpGet httpget = new HttpGet(
    //				                         "http://computer_address:80/test.php");
    			                  HttpResponse response = httpclient.execute(httpget);
    			                  HttpEntity entity = response.getEntity();
    			                  is = entity.getContent();
    			              } catch (Exception e) {
    			                  Log.e("log_tag", "Error in http connection" + e.toString());
    			              }
    			              // convert response to string
    			              try {
    			                  BufferedReader reader = new BufferedReader(
    			                         new InputStreamReader(is, "iso-8859-1"), 8);
    			                  sb = new StringBuilder();
    			                  sb.append(reader.readLine() + "\n");
    			 
    			                  String line = "0";
    			                  while ((line = reader.readLine()) != null) {
    			                     sb.append(line + "\n");  
    			                  }
    			                  is.close();
    			                  result = sb.toString();
    			              } catch (Exception e) {
    			                  Log.e("log_tag", "Error converting result " + e.toString());
    			              }
    			              int ct_id;
    			              String ct_name;
    			              try {
    			                  jArray = new JSONArray(result);
    			                  JSONObject json_data = null;
    			                  for (int i = 0; i < jArray.length(); i++) {
    			                     json_data = jArray.getJSONObject(i);
    			                     ct_id = json_data.getInt("id");
    			                     ct_name = json_data.getString("name");
    			                     
    			                     Message msg = new Message();
    			                     msg.what = 0x123;
    			                     msg.obj = ct_name;
    			                     Log.e("NAME", ct_name);
    			                     myhandler.sendMessage(msg);
    			                     
    			                    // tv.append(ct_name + " \n");
    			                  }
    			              } catch (JSONException e1) {
    			                  // Toast.makeText(getBaseContext(), "No City Found"
    			                  // ,Toast.LENGTH_LONG).show();
    			              } catch (ParseException e1) {
    			                  e1.printStackTrace();
    			              }
    
    			}
    		}.start();
    				}
    	});
  5. private final Handler myhandler = new Handler(){
    		public void handleMessage(Message msg){
    			if(msg.what == 0x123){
    				System.out.println("------->" + msg.obj);
    				tv.append(msg.obj + "\n");
    			}
    		}
    	};

    6. org.apache.http.conn.HttpHostConnectException: Connection to http://localhost refused in android

    当在模拟器中运行程序时,ip地址是自己电脑的真实ip地址

    当在真机上运行时,ip地址是cmd-》ipconfig 下wlan的ip地址 (真机和电脑需要在同一无线局域网下)

    7. PHP代码修改


  6. <?php
    $link=mysqli_connect("localhost","root","123456","test");
    mysqli_set_charset($link, "utf8");
    //mysqli_select_db("test",$link);
    $sql=mysqli_query($link,"select * from teacher ");
    while($row=mysqli_fetch_assoc($sql))
    $output[]=$row;
    print(json_encode($output));
    mysqli_close($link);
    
    ?>



转载于:https://my.oschina.net/LaVictoria/blog/664212

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值