Android 采用post方式提交数据到服务器
接着上篇《Android 采用get方式提交数据到服务器》,本文来实现采用post方式提交数据到服务器
首先对比一下get方式和post方式:
修改布局:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context=".MainActivity" >
- <EditText
- android:id="@+id/et_name"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="请输入用户名"
- android:inputType="text" />
- <EditText
- android:id="@+id/et_pwd"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="请输入密码"
- android:inputType="textPassword" />
- <Button
- android:onClick="LoginByGet"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="GET方式登录"
- />
- <Button
- android:onClick="LoginByPost"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="POST方式登录"
- />
- </LinearLayout>
添加代码:
- package com.wuyudong.loginclient;
- import java.io.ByteArrayOutputStream;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import android.os.Build;
- import android.os.Bundle;
- import android.os.StrictMode;
- import android.annotation.SuppressLint;
- import android.annotation.TargetApi;
- import android.app.Activity;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private EditText et_name;
- private EditText et_pwd;
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- et_name = (EditText) findViewById(R.id.et_name);
- et_pwd = (EditText) findViewById(R.id.et_pwd);
- StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
- .permitAll().build();
- StrictMode.setThreadPolicy(policy);
- }
- public void LoginByGet(View view) {
- String name = et_name.getText().toString().trim();
- String pwd = et_pwd.getText().toString().trim();
- if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)) {
- Toast.makeText(this, "用户名密码不能为空", 0).show();
- } else {
- // 模拟http请求,提交数据到服务器
- String path = "http://169.254.168.71:8080/web/LoginServlet?username="
- + name + "&password=" + pwd;
- try {
- URL url = new URL(path);
- // 2.建立一个http连接
- HttpURLConnection conn = (HttpURLConnection) url
- .openConnection();
- // 3.设置一些请求方式
- conn.setRequestMethod("GET");// 注意GET单词字幕一定要大写
- conn.setRequestProperty(
- "User-Agent",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
- int code = conn.getResponseCode(); // 服务器的响应码 200 OK //404 页面找不到
- // // 503服务器内部错误
- if (code == 200) {
- InputStream is = conn.getInputStream();
- // 把is的内容转换为字符串
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = -1;
- while ((len = is.read(buffer)) != -1) {
- bos.write(buffer, 0, len);
- }
- String result = new String(bos.toByteArray());
- is.close();
- Toast.makeText(this, result, 0).show();
- } else {
- Toast.makeText(this, "请求失败,失败原因: " + code, 0).show();
- }
- } catch (Exception e) {
- e.printStackTrace();
- Toast.makeText(this, "请求失败,请检查logcat日志控制台", 0).show();
- }
- }
- }
- /**
- * 采用post的方式提交数据到服务器
- *
- * @param view
- */
- public void LoginByPost(View view) {
- String name = et_name.getText().toString().trim();
- String pwd = et_pwd.getText().toString().trim();
- if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)) {
- Toast.makeText(this, "用户名密码不能为空", 0).show();
- } else {
- try {
- String path = "http://169.254.168.71:8080/web/LoginServlet?username="
- + name + "&password=" + pwd;
- // 1.定义请求url
- URL url = new URL(path);
- // 2.建立一个http的连接
- HttpURLConnection conn = (HttpURLConnection) url
- .openConnection();
- // 3.设置一些请求的参数
- conn.setRequestMethod("POST");
- conn.setRequestProperty(
- "User-Agent",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");
- conn.setRequestProperty("Content-Type",
- "application/x-www-form-urlencoded");
- String data = "username=" + name + "&password=" + pwd;
- conn.setRequestProperty("Content-Length", data.length() + "");
- conn.setConnectTimeout(5000);//设置连接超时时间
- conn.setReadTimeout(5000); //设置读取的超时时间
- // 4.一定要记得设置 把数据以流的方式写给服务器
- conn.setDoOutput(true); // 设置要向服务器写数据
- conn.getOutputStream().write(data.getBytes());
- int code = conn.getResponseCode(); // 服务器的响应码 200 OK //404 页面找不到
- // // 503服务器内部错误
- if (code == 200) {
- InputStream is = conn.getInputStream();
- // 把is的内容转换为字符串
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = -1;
- while ((len = is.read(buffer)) != -1) {
- bos.write(buffer, 0, len);
- }
- String result = new String(bos.toByteArray());
- is.close();
- Toast.makeText(this, result, 0).show();
- } else {
- Toast.makeText(this, "请求失败,失败原因: " + code, 0).show();
- }
- } catch (Exception e) {
- e.printStackTrace();
- Toast.makeText(this, "请求失败,请检查logcat日志控制台", 0).show();
- }
- }
- }
- }
Android 采用post方式提交数据到服务器的更多相关文章
- Android 采用get方式提交数据到服务器
首先搭建模拟web 服务器,新建动态web项目,servlet代码如下: package com.wuyudong.web; import java.io.IOException; import ja ...
- 采用get方式提交数据到服务器实例
GetDemo项目目录 一.编写StreamTools.java /** * */ package com.hyzhou.getdemo.utiils; import java.io.ByteArra ...
- Android(java)学习笔记210:采用post请求提交数据到服务器(qq登录案例)
1.POST请求: 数据是以流的方式写给服务器 优点:(1)比较安全 (2)长度不限制 缺点:编写代码比较麻烦 2.我们首先在电脑模拟下POST请求访问服务器的场景: 我们修改之前编写的logi ...
- Android(java)学习笔记153:采用post请求提交数据到服务器(qq登录案例)
1.POST请求: 数据是以流的方式写给服务器 优点:(1)比较安全 (2)长度不限制 缺点:编写代码比较麻烦 2.我们首先在电脑模拟下POST请求访问服务器的场景: 我们修改之前编写的logi ...
- Android 使用Post方式提交数据
在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...
- Android 使用Post方式提交数据(登录)
在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...
- Android(java)学习笔记209:采用get请求提交数据到服务器(qq登录案例)
1.GET请求: 组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题) (2)长度有限不能超过4K(h ...
- Android(java)学习笔记152:采用get请求提交数据到服务器(qq登录案例)
1.GET请求: 组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题) (2)长度有限不能超过4K(h ...
- httpclient方式提交数据到服务器
get方式: //使用HttpClient请求服务器将用户密码发送服务器验证 try{ String path = "http://192.168.13.83:8080/xuexi/serv ...
随机推荐
- javascript必知必会:面象对象编程
面象对象编程技术的核心理念:封装.继承.多态:在一些主流的高级编程语言中,比如:C#,VB.NET,JAVA,PHP等都是很容易实现的,而如果要在javascript中实现面象对象编程,可就不那么直接 ...
- MySQL5.7(5.6)GTID环境下恢复从库思(qi)路(yin)方(ji)法(qiao)
要讨论如何恢复从库,我们得先来了解如下一些概念: GTID_EXECUTED:它是一组包含已经记录在二进制日志文件中的事务集合 GTID_PURGED:它是一组包含已经从二进制日志删除掉的事务集合 ...
- 我读过的最好的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象. 不管是文件,还是套接字,还是管道,我们都可以把他们看作流. 之后我们来讨论I/O的操作,通过read ...
- Asp.Net WebForm和MVC同样优秀!
不是说MVC不好,而是WebForm并没有那么不堪,和Mvc同样优秀.对说WebForm缺点多的,表示不服,求指教,虽然本人有些见解可能比较浅薄. 看过很多文章和书籍,都会拿MVC模式和WebForm ...
- jQuery 3.0正式发布
jQuery 基金会刚刚发布了该 JavaScript 框架的 3.0 版本,并且首次抛弃了对老旧的 IE 浏览器的支持.jQuery 3.0 的工作始于 2014 年 10 月,其最初目标是在 2. ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(六)SendReceiveOptions
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸
[源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/F ...
- Windows下查看JDK是否安装以及安装路径
查看JDK是否已经安装,可以在cmd窗口里输入java -version,如果没有提示出错,就表示已经安装. 查看JDK的安装路径,可以输入java -verbose,会返回很多信息,其中就包含了JD ...
- springmvc中RequestMapping的解析
在研究源码的时候,我们应该从最高层来看,所以我们先看这个接口的定义: package org.springframework.web.servlet; import javax.servlet.htt ...
- Python 3 利用 subprocess 实现管道( pipe )交互操作读/写通信
这里我们用Windows下的shell来举例: from subprocess import * #因为是举例,就全部导入了 为了方便你理解,我们用一个很简单的一段代码来说明: 可以看见我们利用Pop ...