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();
}
}
分享到:
相关推荐
在Android开发中,HTTP通信是应用与服务器交互的重要方式,主要通过POST和GET两种方法进行数据传输。本篇文章将深入探讨Android中如何实现HTTP POST和GET请求,以及相关的上传和下载功能。 首先,GET和POST是HTTP...
本主题聚焦于如何利用HttpPost方法在Android中获取网页图片。这个简单的工程演示了如何实现这一功能,使得开发者能够更好地理解和应用网络请求来下载图片。 首先,我们需要引入必要的库。在Android项目中,通常使用...
在Android应用开发中,与服务器进行数据交互是常见的需求,HttpPost是HTTP协议中用于向服务器发送数据的一种方法。本实例将详细介绍如何在Android环境中使用HttpPost请求连接服务器,并处理相关的异常情况,如网络...
本文将深入探讨如何在Android中实现HTTP POST请求,以完成数据提交的操作。 HTTP POST方法是HTTP协议中的一种请求类型,常用于向服务器发送数据。POST请求将数据封装在请求正文中,与GET请求不同,GET请求的数据...
new Thread(new Runnable() { public void run() { // TODO Auto-generated method stub try { //设置连接超时 HttpParams httpParameters = new BasicHttpParams(); int timeoutConnection = 3000;...
简单方便的android 端http get 和post 请求 测试端口数据用
在Android开发中,网络通信是应用与服务器交互的重要方式之一,`HttpPost`是其中一种常见的HTTP请求方法。本文将深入探讨`AndroidHttpPost`在Android应用中的实现和使用,以及与其相关的Java编程技术。 首先,`...
在Android中,使用HTTPClient进行POST请求时,可以通过`HttpPost`对象设置`EntityEnclosingRequestBase`的`setEntity()`方法来添加请求实体,包含要发送的数据。 3. **HTTPClient文件上传**:在Android中,...
在Android应用开发中,发起POST网络请求是与服务器交互的重要环节。Android Studio作为官方推荐的集成开发环境(IDE),提供了丰富的工具和库来简化这一过程。本文将详细讲解如何在Android Studio中使用Java语言和...
HttpPost httpPost = new HttpPost("http://your-api-url.com"); List<NameValuePair> nameValuePairs = new ArrayList(2); nameValuePairs.add(new BasicNameValuePair("key1", "value1")); nameValuePairs....
总结一下,这个"Delphi XE10.3三层测试datasnap res+android+httppost"项目展示了如何在Delphi环境下,利用三层架构和DataSnap构建一个Android应用程序,通过HTTP POST与服务器进行数据交互。这个过程涵盖了客户端的...
本教程将深入探讨如何在Android中使用HTTP GET和POST方法进行网络请求,通过一个实际的HttpTest示例来阐述相关知识。 一、HTTP GET与POST的区别 1. GET:主要用来获取资源,它是幂等的,即多次执行同一个GET请求,...
在Android开发中,HTTP请求是应用与服务器交互的重要方式之一,`HttpURLConnection`是Java标准库提供的一种HTTP客户端API,适合用于发送POST请求。在这个"Android httpUrlConnection Post方式访问网络简单demo"中,...
在Android开发中,进行网络通信是常见的需求,而POST请求是一种常用的数据提交方式。本教程将深入探讨如何在Android原生环境中实现POST请求,并通过源码解析来理解其工作原理。 首先,Android中的网络操作主要依赖...
在Android开发中,POST和GET是两种主要的HTTP请求方法,用于从服务器获取数据或向服务器发送数据。本文将深入探讨这两种方法的工作原理、应用场景以及如何在Android中实现它们。 一、POST与GET方法的区别 1. 工作...
本文将详细介绍如何在Android应用中使用`HttpPost`向服务器发送请求,以及相关操作技巧。 首先,确保在Android项目中引入了Apache HTTP库。在`build.gradle`文件中添加以下依赖: ```gradle dependencies { ...
本篇主要介绍如何在Android应用中使用HttpPost实现与服务器的通信,以及涉及到的相关技术点。 首先,我们需要理解Android网络访问的基本规则。Android系统对网络操作进行了严格的限制,所有网络请求必须在主线程...
3. 将键值对数组封装成UrlEncodedFormEntity,然后设置到HttpPost对象的Entity中。 4. 执行HttpPost请求,获取服务器返回的HttpResponse对象。 5. 处理服务器返回的响应。 根据给定内容,我们可以构建一个通用的...
HttpPost httpPost = new HttpPost("http://yourserver.com/upload"); ``` 上传文件的关键在于构造合适的Entity对象。我们使用MultipartEntityBuilder来创建一个多部分实体,它可以包含多个部分,如文件和文本数据...
下面将详细介绍如何在Android应用中使用WebView组件来模拟POST请求。 ### 一、理解WebView的postUrl方法 在给出的代码示例中,`WebLogin`类继承自`Activity`,并在`onCreate`方法中初始化了一个WebView实例,并...