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;}}

Android客户端请求服务器端的详细解释(附源代码)相关推荐

  1. 一个简单的Android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码代码如下: /** ...

  2. Android 客户端与服务器端进行数据交互(一、登录服务器端)

    概要 安卓APP要实现很多功能(比如登录注册.发表评论等)时都必须要使用到网络数据交互.所以在学习了这部分内容后,就将其以最常见的登录过程为例整理出来,也方便跟我一样的新手能迅速学习上手. 预期效果图 ...

  3. Android客户端与服务器端socket通讯

    Android客户端与服务器端的Socket通讯: socket通讯依赖IP地址和端口号,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务. 服务器端代码: 实例化主类, ...

  4. android中 menu的属性详细解释

    android中 menu的属性详细解释 <?xml version="1.0" encoding="utf-8"?> <menu xmlns ...

  5. android客户端从服务器端获取json数据并解析的实现代码

    2019独角兽企业重金招聘Python工程师标准>>> 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 代码如下: /** * 从指定的URL中获取 ...

  6. Android客户端与服务器端交互,如何保持session回话

    前言 最近在开发项目的过程中,遇到Android与web服务器要在同一session下通信的问题. 一.Session与Cookie的共性与区别: ①.共性 Cookie和Session都为了用来保存 ...

  7. Socket编程(Android客户端+PC服务器端)

    一个多月没有写东西了,感觉像过了一个暑假...废话不多说了,今天来记录一下这两天学习Socket的内容.按照我研究思路来进行一步步的深入Socket. 一.什么是Socket 网络上的两个程序通过一个 ...

  8. android客户端与服务器端交互 如何保持session

    最近在开发项目的过程中,遇到android与web服务器要在同一session下通信的问题. 在解决问题前先回顾下Session与Cookie: Cookie和Session都为了用来保存状态信息,都 ...

  9. 【JavaSocket编程】实现P2P客户端与服务器端双向传输数据(附代码)

    先看实现效果: 核心思想: 1使用socket建立连接 2客户端和服务器端分别创建两个进程,通过soccket来进行数据的发送和接收 话不多说,直接上代码 #客户端 package test; imp ...

最新文章

  1. const在指针中的用法
  2. 数据结构-队(C语言代码)
  3. NASA重金悬赏 太空尿片最佳解决方案
  4. 云计算仿真框架CloudSim介绍
  5. Linux 下进入含空格的目录(以及文件夹名开头为`(`)
  6. python数据导出excel_Python方法将DBF文件导出到Excel代码示例
  7. 6、深思数盾加密狗使用小记
  8. smtp服务器发送邮件的工作原理,SMTP协议工作原理及服务.doc
  9. java批量控制安卓手机_安卓手机屏幕投射到电脑以及一台电脑控制多台手机技术原理浅析...
  10. 很全的zencart 模板修改
  11. python爬虫之爬取捞月狗直播信息
  12. 牵手华为冲刺L2++市场,这家国产厂商的自动驾驶版图再扩张
  13. 基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统
  14. STM32 USB 开发(一)HID Slave 通信
  15. 知识图谱与推荐系统综述
  16. windows server + documents4j 转excel报错 Could not access target file
  17. 网上购车平台蛋蛋订车上私户兴起,与汽车之家联合开展青少年嘉年华
  18. 2022国赛正式题nfs 解题
  19. c语言课程设计--图书/音乐管理系统
  20. 数据结构与算法A实验六图论---7-9 最短路径(并查集Dijkstra)

热门文章

  1. 5G智能灯杆和智慧合杆的区别和功能介绍
  2. libuv抽象接口简单梳理
  3. vue项目中导入icon字体文件出现This relative module was not found:* ./iconfont.eot?t=1523541245904
  4. 华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包
  5. 用Keil 开发TI微控制器(TivaC)
  6. Jenkins-流水线相关知识
  7. VirtualBox for macOS NS_ERROR_FAILURE (0x80004005) 问题解决记录
  8. Computational Imaging 计算成像(二)
  9. 学校作业——配置ssm框架做一个简单的登陆注册
  10. 微机 微型计算机,微型计算机杂志