Android 网络提交数据(使用Asynchronous Http Client)

Android 网络提交数据(使用Asynchronous Http Client)
        发表于1年前(2014-01-31 23:46)      阅读( 1679) | 评论( 2)               9人收藏此文章, 我要收藏    
赞0

3月21日 深圳 OSC 源创会正在报名中,送华为海思开发板

      

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
< 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" >
 
     < TextView
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
         android:background = "#88ff98ff"
         android:gravity = "center"
         android:text = "使用Async框架"
         android:textSize = "20sp" />
 
     < Button
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
         android:onClick = "get_click"
         android:text = "GET发送HTTP请求" />
 
     < Button
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
         android:onClick = "post_click"
         android:text = "POST发送HTTP请求" />
 
     < Button
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
         android:onClick = "upload_click"
         android:text = "上传文件" />
 
</ LinearLayout >

activity:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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();
             }
         });
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值