服务器代码:用于接收客户端信息

package ches;

import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/chess")
public class chess extends HttpServlet { public chess() {
super();
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String username = request.getParameter("name");
String password = request.getParameter("sex"); System.out.println(username);
System.out.println(password); } }

接下来是android 项目搭建

创建一个异步请求  asyncText类

package com.example.asynctask4;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder; import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast; public class asyncText extends AsyncTask{
private static final String Url = "http://192.168.1.37:8080/ches/chess";
private String name,sex;
private MainActivity activity; private String errorMessage = "";
private String messageInfo = ""; public asyncText(MainActivity activity){
this.activity= activity;
}
@Override
protected Object doInBackground(Object... params) {
name = (String) params[0];
sex = (String) params[1]; try {
URL url = new URL(Url); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//对连接进行配置
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setConnectTimeout(3000);
conn.setRequestMethod("POST"); //获取一个输出流
OutputStream os = conn.getOutputStream();
//上传文本数据
DataOutputStream dos = new DataOutputStream(os);
dos.writeBytes("name="+URLEncoder.encode(name,"UTF-8")+"&sex="+URLEncoder.encode(sex,"UTF-8"));
dos.flush();
dos.close(); if(conn.getResponseCode()==200){
//输入流
InputStream is = conn.getInputStream(); //reader(注意UTF-8读)
InputStreamReader isr = new InputStreamReader(is,"UTF-8");
//缓冲区,防止读死
BufferedReader br = new BufferedReader(isr);
String ReadOneline = null; //多行数据时,减少不断创建String对象
StringBuffer sb = new StringBuffer();
while ( (ReadOneline=br.readLine())!=null ){
sb.append(ReadOneline); }
br.close();
isr.close();
is.close();
conn.disconnect();
return sb.toString();
}else{
errorMessage = "服务器繁忙,请稍后再试("+conn.getResponseCode()+")";
return "errorserver";
}
} catch (Exception e) {
Log.i("http", "http执行_获取异常");
errorMessage = e.getMessage();
return "errorclient";
} }
@Override
protected void onPostExecute(Object result) {
// TODO Auto-generated method stub if ("errorclient".equals(result)){
Toast.makeText(activity, "连接不到服务器"+messageInfo, 500).show();
return;
}if("errorserver".equals(result)){
Toast.makeText(activity, "服务器正在维护中"+messageInfo, 500).show();
return;
}if("ok".equals(result)){
Toast.makeText(activity, "注册成功", 500).show();
} super.onPostExecute(result);
}
}

MainActivity.java

package com.example.asynctask4;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText; public class MainActivity extends Activity {
private EditText editText1,editText2;
private Button button;
private String name,sex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
name = editText1.getText().toString().trim();
sex = editText2.getText().toString().trim();
asyncText as = new asyncText(MainActivity.this);//传值到异步多线程
as.execute(name,sex);//执行
}
});
} }

activity_main.xml

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.asynctask4.MainActivity" > <EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="24dp"
android:ems="10"
android:inputType="textPersonName" /> <EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="14dp"
android:ems="10" /> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText2"
android:layout_below="@+id/editText2"
android:layout_marginLeft="23dp"
android:layout_marginTop="29dp"
android:text="上传文本" /> </RelativeLayout>

xmlx效果图:

-----------------------------------------------------------------------------------------------------------------------------

还有一点很重要:就是要给联网的权限

<uses-permission android:name="android.permission.INTERNET"/>    【数据联网】
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>【WIFI联网】

------------------------------------------------------------------------------------------------------------------------------

客户端

服务器接收的结果:---------------------------------------------------------------------------------

AsyncTask异步上传文本到服务器的更多相关文章

  1. Android -- 图片异步上传到PHP服务器

    背景                                                                                           网上很多上传到 ...

  2. 使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)

    使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)   原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax,把图片的base64编码 ...

  3. 使用 html5 FileReader 获取图片, 并异步上传到服务器 (不使用 iframe)

    为什么80%的码农都做不了架构师?>>>   原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax,把图片的base64编码post到服务器. 3.根据 ...

  4. jQuery插件之ajaxFileUpload异步上传

    介绍 AjaxFileUpload.js 是一个异步上传文件的jQuery插件,原理是创建隐藏的表单和iframe然后用JS去提交,获得返回值. 下载地址: http://files.cnblogs. ...

  5. html5图片异步上传/ 表单提交相关

    1 form 表单 get/post提交时候. action地址(或者啥ajax的url地址) 会涉及到跨域问题 常见跨域问题http://www.cnblogs.com/rainman/archiv ...

  6. 【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

    前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现a ...

  7. 异步上传文件,ajax上传文件,jQuery插件之ajaxFileUpload

    http://www.cnblogs.com/kissdodog/archive/2012/12/15/2819025.html 一.ajaxFileUpload是一个异步上传文件的jQuery插件. ...

  8. 利用jquery.form实现异步上传文件

    实现原理 目前需要在一个页面实现多个地方调用上传控件上传文件,并且必须是异步上传.思考半天,想到通过创建动态表单包裹上传文件域,利用jquery.form实现异步提交表单,从而达到异步上传的目的,在上 ...

  9. Ajax.BeginForm 异步上传附件 替代方案

      一:问题描述 含有文件信息表单内容,想通过异步上传到服务器,但是使用Ajax.BeginForm上传时,后台无法获取文件信息 二:解决方案 通过  $.ajaxFileUpload 可以实现文件及 ...

随机推荐

  1. C#读取文件为byte[]

    C#读取文件为byte[] 转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// 读取程序生成byte /// </sum ...

  2. c语言第一章第一节 认识变量

    声明:本人大一新生,闲着无聊..写写c语言教程..菜鸟一枚..大神勿喷!!! 接下来我们都用dev来进行编译..vc++太古老了,没提示功能,不好上手,并且老是出毛病..vs太大了,编个c不至于,运行 ...

  3. Maven Super POM

    Maven super POM defines some properties. Three ways to find it ${M2_HOME}/lib/maven-model-builder-3. ...

  4. 计算sql语句的查询时间

    set statistics profile on set statistics io on set statistics time on go <这里写上你的语句...> go set ...

  5. 给Excel2013添加WebADI的Oracle加载项

    大家都知道,在Excel2013的加载项中是找不到WebADI的加载项的,EBS貌似有一个补丁,这里讲手动设置的步骤: 打开一个下载的WebADI的模板: 依次打开菜单: 文件>选项>自定 ...

  6. jquery复选框 选中事件 及其判断是否被选中

    jquery复选框 选中事件 及其判断是否被选中 (2014-07-25 14:03:54) 转载▼ 标签: jquery复选框选中事件 分类: extjs jquery   今天做了 显示和不显示密 ...

  7. [原创]CSS3打造动态3D气球

    周末在江边晨跑的时候发现很多 当时心血来潮就想,应该可以在网页中实现一下 这几天得闲就做了一下,效果如下 (尽量在最新版本的chrome或者firefox中查看) demo下载在文章最后 预览 --& ...

  8. iOS9新特性 window决定程序的状态栏管理问题

    Xcode7升级之后遇到的问题   问题一: 老项目在Xcode6上运行没有任何问题,但在Xcode7上运行直接崩了! 经过一波分析: 发现是因为我顶部状态栏处添加了topWindow,用于处理Tab ...

  9. 用递归调用实现字符串反转(java版)

    写一个函数,输入int型,返回整数逆序后的字符串.如:输入123,返回“321”. 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串. public static String re ...

  10. js数组中sort排序注意的地方

    var a=[1,2,3,4,5] function sum(a,b) { return a-b } //从小到大 function obj(a,b) { return b-a } //从大到小 a. ...