项目目录

一、编写MainActivity.java

package com.hyzhou.getdemo;

import com.hyzhou.getdemo.service.LoginServer;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private EditText et_username, et_password; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username = (EditText) findViewById(R.id.et_username);
et_password = (EditText) findViewById(R.id.et_password);
} public void click(View view) {
final String username = et_username.getText().toString().trim();
final String password = et_password.getText().toString().trim();
new Thread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
final String result = LoginServer
.loginByPost(username, password);
if (result != null) {
runOnUiThread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, result, 0).show();
}
});
} else {
runOnUiThread(new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "请求失败", 0).show();
}
});
}
}
}).start();
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
} }

二、编写LoginServer.java

/**
*
*/
package com.hyzhou.getdemo.service; import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL; import com.hyzhou.getdemo.utiils.StreamTools; /**
* @author hyzhou
*
* 2013-11-6
*/
public class LoginServer {
public static String loginByPost(String username,String password)
{ try {
String path="http://192.168.1.54:8080/web/LoginServlet";
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
//准备数据
String data="username="+username+"&password="+password;
conn.setRequestProperty("content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", data.length()+"");
//post 的方式实际上是浏览器把数据写给服务器
conn.setDoOutput(true);
OutputStream os=conn.getOutputStream();
os.write(data.getBytes()); int code=conn.getResponseCode();
if (code==200) {
InputStream is=conn.getInputStream();
String text=StreamTools.readInputStream(is);
return text;
}else {
return null;
} } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}

三、编写StreamTools.java

/**
*
*/
package com.hyzhou.getdemo.utiils; import java.io.ByteArrayOutputStream;
import java.io.InputStream; /**
* @author hyzhou
*
* 2013-11-6
*/
public class StreamTools { /**
* 把输入流内容转化成字符串
*/
public static String readInputStream(InputStream is) {
try {
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int len=0;
byte[] buffer=new byte[1024];
while ((len=is.read(buffer))!=-1) {
baos.write(buffer,0,len);
/**
*
*/
package com.hyzhou.getdemo.utiils; import java.io.ByteArrayOutputStream;
import java.io.InputStream; /**
* @author hyzhou
*
* 2013-11-6
*/
public class StreamTools { /**
* 把输入流内容转化成字符串
*/
public static String readInputStream(InputStream is) {
try {
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int len=0;
byte[] buffer=new byte[1024];
while ((len=is.read(buffer))!=-1) {
baos.write(buffer,0,len);
}
is.close();
baos.close();
byte[] result=baos.toByteArray();
//试着解析result中的字符串
String temp=new String(result);
return temp;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return "获取失败";
} }
}
/**
*
*/
package com.hyzhou.getdemo.utiils; import java.io.ByteArrayOutputStream;
import java.io.InputStream; /**
* @author hyzhou
*
* 2013-11-6
*/
public class StreamTools { /**
* 把输入流内容转化成字符串
*/
public static String readInputStream(InputStream is) {
try {
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int len=0;
byte[] buffer=new byte[1024];
while ((len=is.read(buffer))!=-1) {
baos.write(buffer,0,len);
}
is.close();
baos.close();
byte[] result=baos.toByteArray();
//试着解析result中的字符串
String temp=new String(result);
return temp;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return "获取失败";
} }
}

PS:相对get请求,Post请求相对复杂,需要指定Content-Type、Content-Length等

采用Post方式提交数据实例的更多相关文章

  1. Android 采用post方式提交数据到服务器

    接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout ...

  2. Android 采用get方式提交数据到服务器

    首先搭建模拟web 服务器,新建动态web项目,servlet代码如下: package com.wuyudong.web; import java.io.IOException; import ja ...

  3. 采用get方式提交数据到服务器实例

    GetDemo项目目录 一.编写StreamTools.java /** * */ package com.hyzhou.getdemo.utiils; import java.io.ByteArra ...

  4. 苹果微信浏览器不能post方式提交数据问题

    form表单中采用post方式提交数据时,在苹果的微信浏览器中无法传递,安卓的可以 如图: 在controller中获取该数据为 null 将表单的提交方式修改为get就能够获取到 现在采用Ajax方 ...

  5. Android 使用Post方式提交数据

    在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...

  6. Android 使用Post方式提交数据(登录)

    在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...

  7. Android(java)学习笔记210:采用post请求提交数据到服务器(qq登录案例)

    1.POST请求:  数据是以流的方式写给服务器 优点:(1)比较安全 (2)长度不限制 缺点:编写代码比较麻烦   2.我们首先在电脑模拟下POST请求访问服务器的场景: 我们修改之前编写的logi ...

  8. Android(java)学习笔记213:开源框架post和get方式提交数据(qq登录案例)

    1.前面提到Http的get/post方式  . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2.Android应用会经常使用http协议进行传输,网上会有很完善 ...

  9. Android(java)学习笔记153:采用post请求提交数据到服务器(qq登录案例)

    1.POST请求:  数据是以流的方式写给服务器 优点:(1)比较安全 (2)长度不限制 缺点:编写代码比较麻烦   2.我们首先在电脑模拟下POST请求访问服务器的场景: 我们修改之前编写的logi ...

随机推荐

  1. Java设计模式(14)责任链模式(Chain of Responsibility模式)

    Chain of Responsibility定义:Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合, ...

  2. javascript验证键盘keycode

    document.onkeyup = function(event){ var event = event || window.event; alert(event.keyCode); }

  3. github开源库(二)

    21.drag-sort-listview DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能.重写了TouchIntercept ...

  4. MYSQL数据库从A表把数据插入B表

    如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: Code: INSERT INTO 目标表 SELECT * FROM 来源表; 比如要将 articles 表插入到 newArticl ...

  5. Python之使用PIL实现cv2

    有时候使用cv2需要安装opencv,但是opencv安装比较麻烦,因为需要编译过程. 所以,我们可以使用PIL对cv2的一些常用接口进行复现. 这里我们实现了cv2的imread(), imwrit ...

  6. Python判断操作系统类型

    代码: import platform def TestPlatform(): print ("----------Operation System--------------------- ...

  7. Java如何显示一年的周数?

    在Java中,如何查找一年中或一个月中的第几个星期? 以下示例显示年份和月份的第几周. package com.yiibai; import java.util.*; public class Dis ...

  8. Ubuntu -- 安装、卸载程序的命令

    通过sudo apt-get install xxxx 安装软件后,总是无法卸载干净,这里以Apache 为例,提供方法:首先sudo apt-get remove apache2再sudo apt- ...

  9. MOD 10,11算法(GB/T 17710-1999 数据处理 校验码系统 ),使用javascript实现

    原文链接:http://chunniu.info/p/74.html GB/T 17710-1999 数据处理 校验码系统 ,便于使用,使用javascript做了一个页面 [php] var NUM ...

  10. [Php] Deprecated: Function ereg_replace() is deprecated

    From: http://www.zxyf.net/n6805c18.shtml 这个问题是因为你用的php版本过高. 在php5.3中,正则函数ereg_replace已经废弃,而dedecms还继 ...