`
1028826685
  • 浏览: 936778 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

android向服务器提交数据

阅读更多

在我们的实际开发中我们很多时候都需要向服务器提交数据来获取服务器响应数据...

下面我就来总结一下通常使用的提交参数的方法有GET和POST

首先来看一下GET方式提交数据 注意:GET方式提交数据一般在2k左右(因服务器而异)

GET方式:

看下面的方法

public static boolean sendGetRequest(String path, Map<String, String> params, String enc) throws Exception{

//path 是我们提交参数的路径

//params 是提交的参数,通过一个Map来封装这些提交参数

//enc 是编码方式(一般在服务器是:ISO-8859-1 android:UTF-8 还要常见的 gbk、gb2312)

//下面是组拼提交路径
StringBuilder sb = new StringBuilder(path);
sb.append('?');
//提交参数----> ?method=save&title=435435435&timelength=89&
//我们通过先得到这个Map的实体集合,让后通过迭代去得到实体的Key、Value

for(Map.Entry<String, String> entry : params.entrySet()){
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}

//去掉最后多月的&
sb.deleteCharAt(sb.length()-1);
//下面的得到url对象打开连接建立通道
URL url = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求方式 (这里因为是采用Http协议)

conn.setRequestMethod("GET");
//设置请求超时时间

conn.setConnectTimeout(5 * 1000);
if(conn.getResponseCode()==200){
return true;
}
return false;
}

POST方式:

看下面方法:

 

<1、我们直接面向Http协议去提交数据

 

//需要HttpWahcer查看去查看请求头协议(在android其它软件)
public static boolean sendPostRequest(String path, Map<String, String> params, String enc) throws Exception{
//path :提交参数路径

//params:是提交数据 通过Map来封装这些数据

//enc:编码方式 -->为了不出现乱码

// --->提交数据:title=dsfdsf&timelength=23&method=save

StringBuilder sb = new StringBuilder();
//组拼提交数据

 

if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry : params.entrySet()){
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
sb.deleteCharAt(sb.length()-1);
}

 

//通过HttpWatch可以知道 在我们直接面向Http协议通过POST提交数据时我们可以只需

//提交的请求头有Content-Type:和Content-Length: 和我们提交数据即可

//注意:在这里提交的Content-Length:是以二进制来计量长度的


byte[] entitydata = sb.toString().getBytes();//得到实体的二进制数据

//得到连接通道

URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求方式和连接超时

conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);

//注意:这里设置允许输出必须设置true因为我们通过Http协议下服务器提交数据所有必须设置输出

conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据

//Content-Type: application/x-www-form-urlencoded
//Content-Length: 38
//设置请求头的属性

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
//通过通道得到输出流

OutputStream outStream = conn.getOutputStream();
//写出数据

outStream.write(entitydata);
//让缓存中数据及时输出

outStream.flush();
outStream.close();
if(conn.getResponseCode()==200){
return true;
}
return false;
}

<2、

我们通过开源的HttpClient去向服务器提交数据,这里android已经集成了这个开源项目所有就不用加入jar包了

在这个开源的项目中它已经帮助我们封装了上面我们通过直接面向Http协议提交数据中的请求协议部分

方法如下:

//SSL HTTPS Cookie
//注意:如果我们在其他项目中如果用到 SSL 、HTTPS、Cookie时使用这个开源项目会使得编程更简单

 

public static boolean sendRequestFromHttpClient(String path, Map<String, String> params, String enc) throws Exception{
//参数如上

 

//下面通过名字对和List集合来封装我们的数据

// NameValuePair就相当于我们的Map

List<NameValuePair> paramPairs = new ArrayList<NameValuePair>();
if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry : params.entrySet()){
paramPairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}

//通过UrlEncodedFormEntity对我们发送的数据进行编码(enc),让后获得实体数据部分

UrlEncodedFormEntity entitydata = new UrlEncodedFormEntity(paramPairs, enc);//得到经过编码过后的实体数据

//通过HttpPost类来提交我们的数据
HttpPost post = new HttpPost(path); //form
//设置请求提交的数据实体

post.setEntity(entitydata);

//相当于浏览器来提交数据

DefaultHttpClient client = new DefaultHttpClient(); //浏览器
HttpResponse response = client.execute(post);//执行请求
if(response.getStatusLine().getStatusCode()==200){
return true;
}
return false;
}

 

分享到:
评论

相关推荐

    android客户端向服务器提交请求的中文乱码问题

    在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致或处理不当导致的。以下将详细解释这个问题的原因、影响以及如何解决。 首先,我们要明白字符编码的基本原理。...

    Android端使用get post 方法提交数据到服务器demo

    本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的代码示例进行解析。 一、GET方法 GET方法是最简单的HTTP请求方式,常用于获取服务器上的资源。在...

    Android提交数据到服务器端

    使用`HttpURLConnection`提交数据的基本步骤如下: 1. **建立连接**:通过URL对象获取`HttpURLConnection`实例。 2. **设置请求方法**:通常为`POST`,表示我们要向服务器发送数据。 3. **设置请求属性**:如...

    从服务器获取数据,上传数据

    4. **上传数据**:当需要向服务器上传数据时,通常包括文件上传和表单数据提交。文件上传涉及Multipart请求,可以使用RequestBody、OkHttp的RequestBody.create方法来创建。表单数据可以通过POST请求的RequestBody...

    android 登陆、提交数据或加载数据时提示页面

    - **API设计**:定义清晰的API接口,用于向服务器提交数据,可能包括POST、PUT、DELETE等HTTP方法。 - **数据校验**:在提交前对用户输入进行校验,防止无效数据的发送。 - **错误处理**:处理可能出现的网络错误...

    提交数据到服务器---android代码

    以下将详细讲解四种提交数据到服务器的方法:GET、POST、HttpClient的GET以及HttpClient的POST。 1. GET方法: GET是HTTP协议中最基本的请求方法,用于从服务器获取资源。在Android中,可以使用`HttpURLConnection`...

    Andrtoid+ssh(向服务器提交数据)

    本文将详细介绍如何在Android应用中使用SSH来向服务器提交数据。 首先,理解SSH的基本概念是至关重要的。SSH是一种网络协议,主要用于加密网络连接,确保数据传输过程中的安全性。它允许用户在不安全的网络环境中...

    Android客户端和服务器端数据交互Demo01.zip

    GET用于获取数据,POST用于提交数据,PUT用于更新已有资源,而DELETE用于删除资源。"Android客户端和服务器端数据交互Demo01"可能包含了这些请求类型的示例代码。 2. **网络权限**:在Android中,进行网络操作前...

    Android通过POST和GET向服务器发送数据

    - POST请求常用于提交数据,如表单数据、文件上传等。数据被包含在请求体中。 - Android中,可以使用`HttpURLConnection`或`HttpClient`来实现POST请求。`HttpURLConnection`是Java标准库的一部分,适用于API级别...

    Android客户端与服务器通信+json交互数据

    在Android应用开发中,客户端与服务器的通信是至关重要的,特别是在构建移动应用时,需要实时地获取或提交数据。在这个场景中,Android客户端通常通过HTTP协议与服务器进行交互,而JSON(JavaScript Object Notation...

    android采用post方式获取服务器数据

    HTTP POST请求用于向服务器提交数据,常用于表单提交。与GET方法不同,POST方法会将数据包含在HTTP请求体内发送给服务器。这在提交大量数据或敏感数据时尤其有用,因为它可以避免将数据暴露在URL中。 Android提供了...

    Android服务器端与客户端的数据交互

    2. **请求与响应**:客户端(通常是Android应用)通过发送HTTP请求(GET、POST等)来向服务器端获取或者提交数据。服务器接收到请求后,处理数据并返回响应,响应中可能包含处理结果或需要返回的数据。 3. **JSON ...

    android手机与asp服务器传输数据源码

    在IT行业中,移动设备与服务器之间的数据交互是关键的一环,尤其在Android应用程序与ASP服务器的集成中。本文将深入探讨如何实现“android手机与asp服务器传输数据源码”这一主题,结合描述和标签,我们将关注ASP...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本主题将深入探讨Android客户端如何使用JSON进行数据交互,包括...

    Android平台手机访问Web服务器的有效数据交互方法

    GET方法通常用于请求特定资源的信息,而POST方法则用于提交数据到服务器。Android SDK提供了多种API,如HttpURLConnection和HttpClient,用于发起HTTP请求和处理响应。 #### 数据格式与处理 在数据交互中,常见的...

    android httpclient文件上传 http协议post get方法向服务器传输数据

    GET方法用于获取服务器上的资源,而POST方法则常用于向服务器提交数据,如表单数据或者文件。 1. **GET方法**:GET请求将参数附加到URL后面,以问号(?)分隔,每个参数之间用&连接。这种方式简单且易于理解,但...

    采用post方式提交数据到服务器及例子

    以上就是使用POST方式在Android中向服务器提交数据的基本步骤。在实际开发中,还需要根据业务需求进行更复杂的处理,例如添加缓存策略、超时重试等。同时,为了提高代码可读性和可维护性,建议封装成网络访问工具类...

    详解Android提交数据到服务器的两种方式四种方法

    * 本类封装了Android中向web服务器提交数据的两种方式四种方法 */ public class SubmitDataByHttpClientAndOrdinaryWay { /** * 使用get请求以普通方式提交数据 * @param map 传递进来的数据,以map的形式进行...

    Android连接服务器端

    - **POST**:主要用于提交数据到服务器,数据不会显示在URL中。POST方法适用于发送大量或敏感数据。 - **数据格式**:Android客户端与服务器之间的数据交换主要采用JSON或XML格式。这两种格式都是轻量级的数据交换...

Global site tag (gtag.js) - Google Analytics