//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. Retrofit系列文章翻译1—开始创建android客户端
  2. Android(安卓)从零开始打造异步处理框架
  3. Android中SparseArray和ArrayMap的使用
  4. android 简单动画之 animtion
  5. Android(安卓)Xml文件生成,Xml数据格式写入
  6. 我的Android(安卓)4 学习系列之开始入手:配置开发环境与理解Hello
  7. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
  8. Android有用代码片断(五)
  9. 开始开发Android的使用Eclipse

随机推荐

  1. jQuery ajax问题 - 无法让我的函数工作
  2. JQuery 表单验证按钮提交之前变色
  3. 如何退色改变背景图像
  4. 怎么让CSS动画走的慢一点啊。
  5. jQuery: 刨根问底 attr and prop两个函数
  6. jQuery轻量级圆形进度指示器插件
  7. 与symfony一起使用ajax时出现500内部服务
  8. jquery解析php通过ajax传过来的json二维
  9. java前端实时绘制不连续时间点多系列折线
  10. 从ajax查询返回的数组看起来还可以,但是它