`

Android通过http协议POST传输方式

 
阅读更多

Android通过http协议POST传输方式如下:

方式一:HttpPost(import org.apache.http.client.methods.HttpPost)

代码如下:

private Button button1,button2,button3;
private TextView textView1;

button1.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//URLַ
// String uriAPI = "http://www.dubblogs.cc:8751/Android/Test/API/Post/index.php";
String uriAPI = "http://172.20.0.206:8082//TestServelt/login.do";
/*建立HTTP Post连线*/
HttpPost httpRequest =new HttpPost(uriAPI);
//Post运作传送变数必须用NameValuePair[]阵列储存
//传参数 服务端获取的方法为request.getParameter("name")
List <NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name","this is post"));
try{


//发出HTTP request
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//取得HTTP response
HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);

//若状态码为200 ok
if(httpResponse.getStatusLine().getStatusCode()==200){
//取出回应字串
String strResult=EntityUtils.toString(httpResponse.getEntity());
textView1.setText(strResult);
}else{
textView1.setText("Error Response"+httpResponse.getStatusLine().toString());
}
}catch(ClientProtocolException e){
textView1.setText(e.getMessage().toString());
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
textView1.setText(e.getMessage().toString());
e.printStackTrace();
} catch (IOException e) {
textView1.setText(e.getMessage().toString());
e.printStackTrace();
}
}

});

方式二:HttpURLConnection、URL(import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;)

private void httpUrlConnection(){
try{
String pathUrl = "http://172.20.0.206:8082/TestServelt/login.do";
//建立连接
URL url=new URL(pathUrl);
HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();

////设置连接属性
httpConn.setDoOutput(true);//使用 URL 连接进行输出
httpConn.setDoInput(true);//使用 URL 连接进行输入
httpConn.setUseCaches(false);//忽略缓存
httpConn.setRequestMethod("POST");//设置URL请求方法
String requestString = "客服端要以以流方式发送到服务端的数据...";

//设置请求属性
//获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致
byte[] requestStringBytes = requestString.getBytes(ENCODING_UTF_8);
httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length);
httpConn.setRequestProperty("Content-Type", "application/octet-stream");
httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
httpConn.setRequestProperty("Charset", "UTF-8");
//
String name=URLEncoder.encode("黄武艺","utf-8");
httpConn.setRequestProperty("NAME", name);

//建立输出流,并写入数据
OutputStream outputStream = httpConn.getOutputStream();
outputStream.write(requestStringBytes);
outputStream.close();
//获得响应状态
int responseCode = httpConn.getResponseCode();
if(HttpURLConnection.HTTP_OK == responseCode){//连接成功

//当正确响应时处理数据
StringBuffer sb = new StringBuffer();
String readLine;
BufferedReader responseReader;
//处理响应流,必须与服务器响应流输出的编码一致
responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), ENCODING_UTF_8));
while ((readLine = responseReader.readLine()) != null) {
sb.append(readLine).append("\n");
}
responseReader.close();
tv.setText(sb.toString());
}
}catch(Exception ex){
ex.printStackTrace();
}
}

原文http://chunpeng.iteye.com/blog/631972

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

分享到:
评论

相关推荐

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

    小小测试项目包含了4个知识点,其中包含了http协议向服务器传输数据的post和get方法,包含了httpclient传输方法,httpclient上传文件到服务器的方法,

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

    android通过POST和GET向服务器发送数据.包括使用普通HTTP协议发送和使用android内置的HttpClient进行发送。

    Adnroid http协议与数据传输 Jar包

    该数据Jar包实现了 Android 与 jsp 页面之间的数据交互 它封装了http post请求与提交的数据 并且 简化了它 并且内含 使用源码

    Android中post和get的提交方式【三种】

    严格遵照Http协议进行数据传输。在安卓开发环境下,由于主线程不能进行网络访问,因此需要在开启一个子线程向服务器提交数据。为了更加直观的观察数据,可以在程序屏幕上显示服务器反馈信息。又由于子线程无法更

    精通ANDROID 3(中文版)1/2

    11.1.2 将HttpClient用于HTTPPOST请求(多部分POST请求示例)  11.1.3 SOAP、JSON和XML分析程序  11.1.4 处理异常  11.1.5 解决多线程问题  11.1.6 有趣的超时  11.1.7 使用HttpURLConnection  11.1.8 ...

    android天气预报

    一个移动开发作业,是在Android中通过使用HTTPPOST和SOAP协议访问WebService,以及采用多线程方式,消息传送机制进行界面控件的更新。如果能够掌握此案例的要点,那么其他类似的WebService的API使用就会一通百通,...

    精通Android 3 (中文版)2/2

    11.1.2 将HttpClient用于HTTPPOST请求(多部分POST请求示例)  11.1.3 SOAP、JSON和XML分析程序  11.1.4 处理异常  11.1.5 解决多线程问题  11.1.6 有趣的超时  11.1.7 使用HttpURLConnection  11.1.8 ...

    用Android Studio绘制贝塞尔曲线的艺术之旅

    1. 贝塞尔曲线的绘制:我们巧妙地利用Android Studio的绘图功能,实现了贝塞尔曲线的绘制。通过简单的操作,你可以自由操控曲线的形状和曲率,为你的艺术作品注入无限可能。 2. JSON数据解析:我们应用程序支持JSON...

    Android典型技术模块开发详解

    13.6 Http方式的SOAP调用 13.7 本章小结 第14章 AChartEngine 14.1 API介绍 14.1.1 渲染器 14.1.2 数据填充器 14.1.3 图表View 14.2 折线图 14.2.1 准备数据 14.2.2 创建并设置渲染器 14.2.3 创建数据填充器 14.2.4 ...

    Android第三方HTTP网络支持包OkHttp的基础使用教程

    OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接。如果 HTTP/2 和 SPDY 不可用,OkHttp 会使用连接池来复用连接以提高效率。OkHttp 提供...

    Android上传文件到Web服务器 PHP接收文件

    Android上传文件到服务器,通常采用构造http协议的方法,模拟网页POST方法传输文件,服务器端可以采用JavaServlet或者PHP来接收要传输的文件。使用JavaServlet来接收文件的方法比较常见,在这里给大家介绍一个简单的...

    自动化测试面试题总结.docx

    10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc ...

    mongoose 小型 嵌入式 http 服务器

    跨平台:Linux / Unix,QNX,eCos,Windows,Android,iPhone支持 单线程,异步,基于事件的非阻塞API 内置的协议: 普通TCP,UDP的平原,SSL / TLS(传输,单向或双向) HTTP客户端,服务器 WebSocket客户端,...

    [游戏开发] 达达房卡麻将二次开发VIP系统学习课程 [MP4] (16.66G)

    │ 第015课node.js_http_server与http_client_get_post编码基本流程和实现.rar# Y/ a6 M$ d8 f │ 第016课node.js_fs模块的同步异步读写.rar4 R7 X5 @# a4 v │ 第017课node.js_Base64_MD5_SHA1_Timer模块.rar │ 第...

Global site tag (gtag.js) - Google Analytics