Android使用HttpPost向服务器发送Json数据
客户端向服务器端发送数据,这里用到了两种,一种是在url中带参数,一种是json数据发送方式;
url带参数的写法:
1
|
url+/?r=m/calendar/contact_list&uid=
3
&&subscriptionslist[pageindex]=
10
&subscriptionslist[recordlimit]=
10
|
从“&”符号之后一连串都是参数。
发送方式代码编写:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
DefaultHttpClient httpClient =
new
DefaultHttpClient();
HttpPost httpPost =
new
HttpPost(HttpUtil.BASIC_URL
+ HttpUtil.SUBSCRIPTION_URL);
try
{
if
(cookie !=
null
) {
// httpClient.setCookieStore(LoginJsonUtil.cookie);
List<NameValuePair> nameValuePair =
new
ArrayList<NameValuePair>(
2
);
nameValuePair.add(
new
BasicNameValuePair(
"uid"
,
uid));
nameValuePair.add(
new
BasicNameValuePair(
"subscriptionslist[pageindex]"
,
subscriptionslist_pageindex));
nameValuePair.add(
new
BasicNameValuePair(
"subscriptionslist[recordlimit]"
,
subscriptionslist_recordlimit));
httpPost.setEntity(
new
UrlEncodedFormEntity(nameValuePair));
|
传递参数使用nameValuePair。
如果使用cookie的话,使用上段代码中注释掉的部分
1
|
httpClient.setCookieStore(LoginJsonUtil.cookie);
|
使用json数据格式发送信息向服务器端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
HttpClient httpClient =
new
DefaultHttpClient();
try
{
HttpPost httpPost =
new
HttpPost(BASIC_URL + url);
List<NameValuePair> nameValuePair =
new
ArrayList<NameValuePair>();
JSONObject jsonObject =
new
JSONObject();
JSONObject jsonObject2 =
new
JSONObject();
jsonObject.put(
"uemail"
, userbean.getEmail());
jsonObject.put(
"password"
, userbean.getPassword());
jsonObject2.put(
"userbean"
, jsonObject);
nameValuePair.add(
new
BasicNameValuePair(
"jsonString"
, jsonObject
.toString()));
Log.i(
"lifeweeker"
, jsonObject2.toString());
httpPost.setEntity(
new
UrlEncodedFormEntity(nameValuePair));
|
这里每个put的顺序我不清楚有没有规定,我是严格按照提供的前后顺序来组合json数据格式的。
所属分类:
Android