Android访问php webservice-用json等方式。
2013-03-19 11:42
459 查看
如果是PHP做的服务端,而我们要用android去访问,怎么办?当然可以用REST,但也可以用点笨的方法,比如可以让PHP的服务端返回JSON或XML数据,而Android端则可以用APACHE的httpclient去访问。下面是一个例子,假设...
如果是PHP做的服务端,而我们要用android去访问,怎么办?当然可以用REST,但也可以用点笨的方法,比如可以让PHP的服务端返回JSON或XML数据,而Android端则可以用APACHE的httpclient去访问。
下面是一个例子,假设数据表中users表有如下字段(mysql):
idusers,UserName,FullName
加点数据,然后在服务端建立一个webservice1.php,作用是直接返回服务端数据库的数据,如下:
则可以把数据表输出为JSON或者XML格式了,客户端的Android调用:
再搞个webservice2.php,该文件用来接受并保存客户端传送过来的JSON数据。
而Android客户端,可以构造JSON,发送到webservice2.php
这样就可以把Android端发送的数据保存到服务端了
如果是PHP做的服务端,而我们要用android去访问,怎么办?当然可以用REST,但也可以用点笨的方法,比如可以让PHP的服务端返回JSON或XML数据,而Android端则可以用APACHE的httpclient去访问。
下面是一个例子,假设数据表中users表有如下字段(mysql):
idusers,UserName,FullName
加点数据,然后在服务端建立一个webservice1.php,作用是直接返回服务端数据库的数据,如下:
则可以把数据表输出为JSON或者XML格式了,客户端的Android调用:
try
{
HttpParams httpParams =
new
BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
HttpParams p =
new
BasicHttpParams();
p.setParameter(
"user"
,
"1"
);
HttpClient httpclient =
new
DefaultHttpClient(p);
String url =
"http://10.0.2.2:8082/myphp/phpWebservice/webservice1.php?user=1&format=json"
;
HttpPost httppost =
new
HttpPost(url);
try
{
Log.i(getClass().getSimpleName(),
"send task - start"
);
List nameValuePairs =
new
ArrayList(
2
);
nameValuePairs.add(
new
BasicNameValuePair(
"user"
,
"1"
));
httppost.setEntity(
new
UrlEncodedFormEntity(nameValuePairs));
ResponseHandler responseHandler =
new
BasicResponseHandler();
String responseBody = httpclient.execute(httppost, responseHandler);
// 解析JSON返回的 JSONObject json = new JSONObject(responseBody);
JSONArray jArray = json.getJSONArray(
"posts"
);
ArrayList> mylist =
new
ArrayList>();
for
(
int
i =
0
; i < jArray.length(); i++) {
HashMap map =
new
HashMap();
JSONObject e = jArray.getJSONObject(i);
String s = e.getString(
"post"
);
JSONObject jObject =
new
JSONObject(s);
map.put(
"idusers"
, jObject.getString(
"idusers"
));
map.put(
"UserName"
, jObject.getString(
"UserName"
));
map.put(
"FullName"
, jObject.getString(
"FullName"
));
mylist.add(map);
}
Toast.makeText(
this
, responseBody, Toast.LENGTH_LONG).show();
再搞个webservice2.php,该文件用来接受并保存客户端传送过来的JSON数据。
而Android客户端,可以构造JSON,发送到webservice2.php
try
{
JSONObject json =
new
JSONObject();
json.put(
"UserName"
,
"test2"
);
json.put(
"FullName"
,
"1234567"
);
HttpParams httpParams =
new
BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
HttpClient client =
new
DefaultHttpClient(httpParams);
String url =
"http://10.0.2.2:8082//myphp/phpWebservice/webservice2.php"
;
HttpPost request =
new
HttpPost(url);
request.setEntity(
new
ByteArrayEntity(json.toString().getBytes(
"UTF8"
)));
request.setHeader(
"json"
, json.toString());
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
if
(entity !=
null
) {
InputStream instream = entity.getContent();
String result = RestClient.convertStreamToString(instream);
Log.i(
"Read from server"
, result);
Toast.makeText(
this
, result,
Toast.LENGTH_LONG).show();
}
这样就可以把Android端发送的数据保存到服务端了
相关文章推荐
- android json访问php webservice
- android访问php webservice简单一例
- Android访问php取回json数据
- android之客户端与webservice的json方式交互
- Android中发起网络访问的方式,以及Json、Gson的网络解析
- 微博开发原理简化android使用http访问php获取json
- Android上访问Java做的WebService获取JSON数据的方法及org.xmlpull.v1.XmlPullParserException异常处理
- android网络访问post方式(数据传输采用json数据流,非参数传递)
- android 访问c# webservice 实现登陆注册功能(android 上传json到服务器)
- android之客户端与webservice的json方式交互
- asp.net中webservice与android的json数据交互方式设置
- [iOS/Android开发之WebService]How to write a webservices using php with json format
- Android访问php取回json数据实例
- android访问php webservice简单一例
- Android访问php取回json数据
- android访问php webservice简单一例
- Android访问php取回json数据
- Android通过GET和POST方式访问WCF服务(Json)
- android访问php webservice简单一例