项目主页及简单使用方法http://loopj.com/android-async-http/

页面布局就不复制了,把主要的Activity记录下来,供自己以后使用:

package com.example.asynchttp;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.URLEncoder; import org.apache.http.Header;
import org.apache.http.HttpResponse; import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.loopj.android.http.ResponseHandlerInterface;
import com.loopj.android.http.TextHttpResponseHandler; import android.os.Bundle;
import android.provider.MediaStore.Files;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Menu;
import android.view.View;
import android.widget.Toast; public class MainActivity extends Activity
{ @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} @Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} public void get_click(View v) throws Exception
{
String path = "http://192.168.1.100:8080/ServletTest/Login" + "?username=" + URLEncoder.encode("test", "utf-8") + "&password=" + URLEncoder.encode("123", "utf-8");
AsyncHttpClient client = new AsyncHttpClient();
client.get(path, new AsyncHttpResponseHandler()
{ @Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody)
{
Toast.makeText(MainActivity.this, new String(responseBody), Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error)
{
Toast.makeText(MainActivity.this, new String(responseBody + error.getMessage()), Toast.LENGTH_SHORT).show();
}
});
} public void post_click(View v) throws Exception
{
String path = "http://192.168.1.100:8080/ServletTest/Login";
String username = "test";
String password = "123";
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.add("username", username);
params.add("password", password);
client.post(path, params, new TextHttpResponseHandler()
{
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString)
{
Toast.makeText(MainActivity.this, responseString, Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable)
{
Toast.makeText(MainActivity.this, responseString, Toast.LENGTH_SHORT).show();
}
});
} public void upload_click(View v) throws Exception
{
String path = "http://192.168.1.100:8080/ServletTest/Upload";
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
InputStream is = getAssets().open("test.png");
params.put("file", is,"测试.png");
client.post(path, params, new AsyncHttpResponseHandler()
{ @Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody)
{
Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show();
} @Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error)
{
Toast.makeText(MainActivity.this, "上传失败", Toast.LENGTH_SHORT).show();
}
});
}
}

调试测试的时候可以使用tomvat服务器试验下,开始自己不会写服务器端的代码,偶然间发现toncat自带的例子里面有测试post和get方法提交数据的,一般的地址为:http://10.3.19.27:8080/examples/servlets/servlet/SessionExample前面的改为自己的本机的服务器地址即可

Android 网络提交数据(使用Asynchronous Http Client)的更多相关文章

  1. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  2. Android网络之数据解析----使用Google Gson解析Json数据

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. Android之提交数据到服务端方法简单封装

    在Android应用中,除了单机版的应用,其余的应用免不了需要频繁地与服务端进行数据交互,如果每一种方法都独立写一段代码,那会造成代码大量重复,冗余,这不是我们所希望的,所以我们可以对其进行一些封装, ...

  4. Android -------- 网络访问数据

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

    1.GET请求:    组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题)  (2)长度有限不能超过4K(h ...

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

    1.GET请求:    组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题)  (2)长度有限不能超过4K(h ...

  7. Android(java)学习笔记211:采用httpclient提交数据(qq登录案例)

    1.Apache -Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包 ...

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

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

  9. Android(java)学习笔记154:采用HttpClient提交数据(qq登录案例)

    1.Apache -Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包 ...

随机推荐

  1. ACM学习历程——hihoCoder挑战赛10A 01串(策略)

    时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和" ...

  2. Codeforces 762C Two strings 字符串

    Cpdeforces 762C 题目大意: 给定两个字符串a,b\((len \leq 10^5)\),让你去b中的一个连续的字段,使剩余的b串中的拼接起来的两个串是a穿的子序列.最大化这个字串的长度 ...

  3. P1204 [USACO1.2]挤牛奶Milking Cows

    题目描述 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300秒(从5点开始计时)给他的牛挤奶,一直到1000秒.第二个农民在700秒开始,在 1200秒结束.第三个农民在1500秒开 ...

  4. codevs 3314 魔法森林

    传送门 3314 魔法森林  时间限制: 3 s  空间限制: 256000 KB  题目等级 : 大师 Master 题解   题目描述 Description 为了得到书法大家的真传,小E同学下定 ...

  5. Java多线程加强

    一.传统多线程 public void start() Causes this thread to begin execution; the Java Virtual Machine calls th ...

  6. linux历史及基本知识

    1. Linux的历史: 1973年,Ken Thompson以C语言写出第一个正式版的UNIX内核, 1977年:重要的UNIX分支——BSD(Berkeley Sofeware Distribut ...

  7. Hibernate中注解的开发

    转自:https://blog.csdn.net/liujiahan629629/article/details/22335563 在利用注解开发数据库持久层以前,需要学习一个规范JPA(JavaPe ...

  8. jquery easyui datebox 的使用 .

    jquery easyui datebox 的使用 . 分类: jquery-easyui2012-10-09 19:07 266人阅读 评论(0) 收藏 举报 目录(?)[+] 看了jquery e ...

  9. NFS原理详解

    NFS原理详解 摘自:http://atong.blog.51cto.com/2393905/1343950 2013-12-23 12:17:31 标签:linux NFS nfs原理详解 nfs搭 ...

  10. POJ - 1458 Common Subsequence DP最长公共子序列(LCS)

    Common Subsequence A subsequence of a given sequence is the given sequence with some elements (possi ...