Android客户端post请求服务器端实例

Android客户端请求服务器端的详细解释

1. Android客户端与服务器端通信方式:
Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式。
2. 解析服务器端返回数据的解释:
(1).对于服务器端来说,返回给客户端的数据格式一般分为html、xml和json这三种格式。
(2). JSON(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过JSON来进行交换。
3. Android中,用GET和POST访问http资源
(1).客户端向服务器端发送请求的时候,向服务器端传送了一个数据块,也就是请求信息。
(2). GET和POST区别:
A: GET请求请提交的数据放置在HTTP请求协议头(也就是url)中,而POST提交的数据则放在实体数据中,安全性比较高。
B: GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

注意:考虑到POST的优势,在Android开发中自己认为最好用POST的请求方式,所以下面自己写了一个小的POST请求的例子。代码如下:

package com.scd.jsondemo.util; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.json.JSONException; import org.json.JSONObject; public class JsonUtil { /** 地址 */ private static final String INNER_URL = "http://localhost:8080/index2.jsp"; /** TAG */ private final String TAG = getClass().getSimpleName(); private static final int USER_ID = 1; /*** * 客户端调用的方法:传递参数向服务器中发送请求 * * @param userId * @param userName * @return */ public static JSONObject getData(String userId, String userName) { int modelId = USER_ID; List<NameValuePair> list = new ArrayList<NameValuePair>(); list.add(new BasicNameValuePair("userId", userId)); list.add(new BasicNameValuePair("userName", userName)); return doPost(modelId, list); } /** * 请求服务器的方法 * * @param model * @param paramList * @return */ private static JSONObject doPost(int model, List<NameValuePair> paramList) { // 1.创建请求对象 HttpPost httpPost = new HttpPost(INNER_URL); // post请求方式数据放在实体类中 HttpEntity entity = null; try { entity = new UrlEncodedFormEntity(paramList, HTTP.UTF_8); httpPost.setEntity(entity); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } // 2.创建客户端对象 HttpClient httpClient = new DefaultHttpClient(); // 3.客户端带着请求对象请求服务器端 try { // 服务器端返回请求的数据 HttpResponse httpResponse = httpClient.execute(httpPost); // 解析请求返回的数据 if (httpResponse != null && httpResponse.getStatusLine().getStatusCode() == 200) { String element = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8); if (element.startsWith("{")) { try { return new JSONObject(element); } catch (JSONException e) { e.printStackTrace(); } } } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }

时间: 2024-07-31 19:43:14

Android客户端post请求服务器端实例的相关文章

Android客户端post请求服务器端实例_Android

Android客户端请求服务器端的详细解释 1. Android客户端与服务器端通信方式: Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式. 2. 解析服务器端返回数据的解释: (1).对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式. (2). JSON(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比

为什么android客户端和安卓服务器端源代码中有一模一样的java文件

问题描述 为什么android客户端和安卓服务器端源代码中有一模一样的java文件 为什么android客户端和安卓服务器端源代码中有一模一样的java文件 这样子不是冗余了吗,神马情况下需要这样子呢 解决方案 VO类一样很正常呀,客户端需要解析json,服务端需要生成json

android调用web service(cxf)实例应用详解_Android

Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2-android/,现在该站点已经提供了直接的下载,只要点击下载链接就可以下载了: 我现在的是ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar 2.好了,现在我们就可以进行新建项目来进行测试了,首先我们先建立java服务端,这里的一些前期

Android的Socket通讯编程实例代码

android客户端通过socket与服务器进行通信可以分为以下几步: 应用程序与服务器通信可以采用两种模式:TCP可靠通信 和UDP不可靠通信. (1)通过IP地址和端口实例化Socket,请求连接服务器:  代码如下 复制代码      socket = new Socket(HOST, PORT);   //host:为服务器的IP地址  port:为服务器的端口号 (2)获取Socket流以进行读写,并把流包装进BufferWriter或者PrintWriter:  代码如下 复制代码

android调用web service(cxf)实例应用详解

Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2-android/,现在该站点已经提供了直接的下载,只要点击下载链接就可以下载了: 我现在的是ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar 2.好了,现在我们就可以进行新建项目来进行测试了,首先我们先建立java服务端,这里的一些前期

通信-android 客户端socket连接服务器,socket何时close

问题描述 android 客户端socket连接服务器,socket何时close 假设socket连接好了,现在客户端向服务器发送完了数据,这个时候需要关闭socket吗?如果关闭后,某个时候又需要发送其他数据,再建立连接? 还是说建立通信协议,一次socket连接后一直保持通信状态,根据通信协议对不同的数据进行不同的处理,然后等客户端程序退出时再关闭socket. 解决方案 Android客户端通过Socket连接服务器Android客户端与java服务器端的Socket连接Socket服务

Android客户端利用Socket连接服务端思路及实例

Android客户端利用Socket连接服务器的大概思路如下: 客户端首次连接服务器: socket = new Socket();       SocketAddress address = new InetSocketAddress(svrHost, svrPort);       socket.connect(address, TIME_OUT);       socket.setSoTimeout(TIME_OUT);       in = new BufferedReader(new 

android 扫描二维码后客户端无自动跳转反应且服务端并没有收到来自客户端的请求

问题描述 android 扫描二维码后客户端无自动跳转反应且服务端并没有收到来自客户端的请求 我的代码是这样写的,我希望就是利用Scanner扫描后联网判断账户与密码的正确性,现在的情况是能够get到二维码的内容,但就是没有执行联网查询的操作,是不是不应该在OnActivityResult中去这样写呢'? 希望前辈帮忙指点指点思路.谢谢 下面是service的内容: 解决方案 问题不再这里.你service里面是怎么写的啊?在AndroidManifest.xml里面有没有注册上啊? 解决方案二

http-【求助万能的csdn】android客户端传递一个类到服务器端的问题?毕设问题急

问题描述 [求助万能的csdn]android客户端传递一个类到服务器端的问题?毕设问题急 现在是希望将android客户端生成的Device类传到服务器端处理,Device类已经实现了serializable类. android端: public static void upload(String url_path, Device d) { try { URL url = new URL(url_path); HttpURLConnection conn = (HttpURLConnectio