//android
public class GoWinHttp {
//通过post获得数据
public static String postHttpData(String url,List<NameValuePair> nameValuePairs)
{
String resultStr=null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response;
response=httpclient.execute(httppost);
resultStr=EntityUtils.toString(response.getEntity());
} catch (UnsupportedEncodingException e) {
Log.d(url, "UnsupportedEncodingException");
e.printStackTrace();
} catch (ClientProtocolException e) {
Log.d(url, "ClientProtocolException");
e.printStackTrace();
} catch (IOException e) {
Log.d(url, "IOException");
e.printStackTrace();
}
return resultStr;
}
}
List<NameValuePair> nameValuePairs  构建  这是,post给php的参数
nameValuePairs.add(new BasicNameValuePair("key","value"));

//解析方法,主要是,这里有一点特殊,就是开始第一个json对象是jsonObject 和JSONArray 有一点不同,jsonObject 是指json最开始以{开始的,而以[开始的是JSONArray ,没仔细研究,这里他们都是字符串

//解析JSON数据
public static List<Map<String,String>>resolveData(String jsonStr)
{
List<Map<String,String>>ls=new ArrayList<Map<String,String>>();
Map<String,String> data;
JSONObject jsonObject;
JSONArray jsonArr;
JSONArray nameArr;
try {
jsonArr=new JSONArray(jsonStr);
for(int i=0;i<jsonArr.length();i++)
{
jsonObject=jsonArr.getJSONObject(i);
nameArr=jsonObject.names();
data=new HashMap<String,String>();
String name;
for(int j=0;j<nameArr.length();j++)
{
name=nameArr.getString(j);
data.put(name, jsonObject.getString(name));
}
ls.add(data);
}

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ls;
}


//php上面不管以任何方式得到一个数组,然后将数组编码成为json格式

//这里有一个方法可以将一整张表转换为数组

<?php
//获取一张表的所有数据
function getTabDatas($tabName,$link){
if($tabName=="")
{
exit;
}
$sqlStr='SELECT * FROM '.$tabName;
$result = mysql_query($sqlStr, $link);
if (!$result) {
exit;
}
$fields= array();
for ($i=0; $i<mysql_num_fields($result); $i++)
{
$fields[] =mysql_field_name($result, $i);
}
$arr=array();
while ($row = mysql_fetch_assoc($result)) {
$once=array();

foreach ($fields as $value)
{
$once[$value]=$row[$value];
}

$arr[]=$once;
}
mysql_free_result($result);
closeSqlconn();
return $arr;
}
?>

//然后php只需要将得到的数组格式化为json就行了

 $json_string = json_encode($resArr);
echo $json_string;

//超时请求
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
//读取超时
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);





更多相关文章

  1. Android 数据库操作 创建 添加 删除 查询
  2. Android中获取网页表单中的数据
  3. Android数据缓存
  4. Android解析服务器端发来的xml数据
  5. Android android下的数据持久化和读取数据,保存数据到手机及SD卡
  6. Android连接Mysql数据库教程以及增删改查
  7. Android本地数据存储之SQLite

随机推荐

  1. 关于App.config的9篇文章推荐
  2. 关于处理指令的10篇文章推荐
  3. 有关XHTML的相关推荐10篇
  4. 关于原理及性能的详细介绍
  5. 总结关于百度新闻注意点
  6. 关于添加链接的详细介绍
  7. 有关WSD的详细介绍
  8. 关于XML开发的详细介绍
  9. OpenSearch的汇总分享
  10. 关于基本代码的10篇文章推荐