方式一: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 post传输方式,以上面为例子,如下:
requestStringBytes =“customerId=3461&nickName=黄&email=linafei1111@163.com&areaCode=0592&cityCode=350200®isterPhone=18906051120”服务端通过getParamer("customerId")获取。
如果把参数值放在URL,例如http://172.20.0.206:8082/TestServelt/login.do?customerId=3461&nickName=黄&email=linafei1111@163.com&areaCode=0592&cityCode=350200®isterPhone=18906051120
虽然是以post方式传输,但是实际上还是以get方式提交
分享到:
相关推荐
最近的Android项目开发过程中一个问题困扰自己很长时间,...而下面的几种方式就是从这两种协议扩展出来的:webservices soap、SSH的JSON(可参考:该链接)、xmlrpc(wordpress for android)…… Socket 不推荐 ,HTTP
Android平台上的应用程序不仅能够提供丰富的本地功能,还能通过网络与Web服务器进行数据交互,从而实现更广泛的功能和服务。然而,如何在Android平台上有效地与Web服务器进行数据交互,特别是在提取和解析不同类型...
HTTP 协议和WebService 是两种常见的数据交互方式。 HTTP协议 在上一节中,我们使用 HTTP 协议和 HttpClient 向服务器端请求数据。HTTP 协议是一种基于请求/响应模式的协议,客户端通过发送请求到服务器端,然后...
在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本教程将详细阐述Android客户端如何使用JSON进行数据交互,包括...
本文将深入讲解如何使用HTTP(超文本传输协议)实现简单的服务器与Android客户端的交互,以"简单的Http方式服务器与Android客户端的交互Demo"为例。 首先,我们要理解HTTP的基础。HTTP是一种应用层协议,用于从Web...
在Android客户端与服务器之间的数据交互过程中,主要涉及网络通信、HTTP协议、TCP/IP基础以及数据传输的安全性。以下是对这些知识点的详细说明: 1. **网络通信基础**:Android客户端与服务器之间的通信通常基于TCP...
本文介绍了一种基于Android客户端与服务器之间数据交互的方法,通过具体的技术细节和案例分析,展示了如何有效地实现数据的获取与展示。这种方法不仅能够提高移动应用的性能和用户体验,还能够帮助企业更好地利用...
数据传输通常包括GET和POST两种方式,其中GET请求适用于获取数据,而POST请求适用于上传数据。 3. 接收数据 接收服务器响应的数据是数据交互的另一个关键步骤。Android应用程序可以通过解析HTTP响应来获取服务器...
HTTP协议基于TCP/IP协议,提供了可靠的数据传输,如GET和POST两种主要请求方法。GET方法将请求参数附加在URL中,适合请求少量、非敏感数据;POST方法将参数放在请求体中,更适合传输大量或敏感信息。 2. **使用...
在Android应用开发中,可以使用多种方式来实现与服务器的数据交互,其中`HttpPost`是使用HTTP协议中POST方法的一个具体实现。下面详细介绍如何使用`HttpPost`实现客户端与服务器之间的数据交互: 1. **引入相关依赖...
HTTP请求方法主要有GET和POST两种,它们在上传文件时有着不同的应用场景: - **GET**:通常用于获取资源,参数通过URL传递。由于URL长度限制,GET方式一般适用于参数较少且数据量较小的情况。 - **POST**:用于向...
首先,Android客户端与服务器端的数据交互通常基于HTTP或HTTPS协议,利用网络库如OkHttp、Volley或Retrofit来发起网络请求。OkHttp以其高效和易用性被广泛应用,Volley则提供了更便捷的异步处理,而Retrofit则是通过...
在Android应用开发中,与服务器进行数据交互是常见的需求,主要通过HTTP协议实现。HTTP(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议,它是万维网(WWW)的基础,允许...
本知识点主要聚焦于Android客户端如何与服务器端进行有效的通信,通过IDEA和Eclipse这两种常用的Android开发环境来阐述。 首先,Android客户端与服务器端交互的基本方式主要有HTTP和HTTPS协议,这里提到了...
Android为WebView提供了两种客户端对象,WebChromeClient处理与用户界面相关的事件,如进度更新、JavaScript对话框等;而WebViewClient则负责页面加载的生命周期管理,如加载开始、完成、错误处理等。根据需要,...
在移动应用开发中,Android平台经常需要与Web端进行数据交互,以便实现用户界面与服务器数据的同步。这个"Android与Web端交互源码"是一个非常实用的学习资源,特别是对于初学者来说,它能帮助理解如何在Android应用...
总之,Android与Asp.Net交互主要依赖于Json作为数据交换格式,通过各种Json处理库和网络请求库,实现了两端的数据通信。在实际开发中,需要注意安全性和性能优化,确保应用的稳定性和用户体验。
通过学习和理解这些代码,开发者可以更好地掌握如何在Android应用中利用HTTPClient与服务器进行数据交互。 总结来说,本项目通过具体的代码示例,深入浅出地介绍了Android中HTTPClient的使用,包括GET和POST请求的...
在Android平台上,发送短信是应用程序与用户交互的重要方式之一,主要分为两种方法:直接调用系统短信接口发送和启动系统短信应用。这两种方法各有特点,适用于不同的场景。 1. 调用系统短信接口直接发送短信 这种...