Search for
Login | Username Password Forgot? | Email: | Create Account
Non English | Popularity: 0 | Entries: 63 | Updated: 54m 32s ago | | Add to My Feeds
Android HTTP GET/POST
March 2nd, 2011

android程序HTTP通信的简单示例。纯粹是为了学习+测试,所以存在代码冗余的现象。从一个最简单的登录验证开始,数据的提交方式分别使用GET和POST,利用Toast来提示登录结果。

android http get and post

android http get and post


android.php源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
	$REQUEST_METHOD = $_SERVER['REQUEST_METHOD'];
	echo $REQUEST_METHOD;
	if($REQUEST_METHOD == 'GET'){
		$name = $_GET['name'];
		$pwd = $_GET['pwd'];
 
		if($name == 'Neeke' && $pwd == 'Neeke'){
			echo '你好:'.$name;
		}else{
			echo '登录失败!';
		}
	}else if($REQUEST_METHOD == 'POST'){
		$name = $_POST['name'];
		$pwd = $_POST['pwd'];
 
		if($name == 'Neeke' && $pwd == 'Neeke'){
			echo '你好:'.$name;
		}else{
			echo '登录失败!';
		}
	}
?>

android主程序源码:

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
public class Main extends Activity {
 
	private Button btnGet;
	private Button btnPost;
	private EditText etName;
	private EditText etPwd;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btnGet = (Button) findViewById(R.id.btnGet);
        btnPost = (Button) findViewById(R.id.btnPost);
        etName = (EditText) findViewById(R.id.etName);
        etPwd = (EditText) findViewById(R.id.etPassword);
 
        btnGet.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				HttpGet request = new HttpGet("http://www.ineeke.com/android/android.php?name="+etName.getText().toString()+"&pwd="+etPwd.getText().toString());
				try {
					HttpResponse response = new DefaultHttpClient().execute(request);
					if(response.getStatusLine().getStatusCode() == 200){
						String result = EntityUtils.toString(response.getEntity());
						Toast.makeText(Main.this, result, Toast.LENGTH_LONG).show();
					}
 
				} catch (Exception e) {
 
					Toast.makeText(Main.this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
					e.printStackTrace();
				}
			}
		});
 
        btnPost.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				HttpPost request = new HttpPost("http://www.ineeke.com/android/android.php");
				List<NameValuePair> params = new ArrayList<NameValuePair>();
				params.add(new BasicNameValuePair("name", etName.getText().toString()));
				params.add(new BasicNameValuePair("pwd", etPwd.getText().toString()));
 
				try {
					request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
					HttpResponse response = new DefaultHttpClient().execute(request);
					if(response.getStatusLine().getStatusCode() == 200){
						String result = EntityUtils.toString(response.getEntity());
						Toast.makeText(Main.this, result, Toast.LENGTH_LONG).show();
					}
				} catch (Exception e) {
 
					Toast.makeText(Main.this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
					e.printStackTrace();
				}
			}
		});
    }
}

最后,千万千万不要忘记要赋予程序访问网络的权限!因为我就经常忘记权限的问题,导致出了问题郁闷老半天。
在AndroidManifest.xml加入:

1
<uses-permission android:name="android.permission.INTERNET" />

或许你会对下面这些文章感兴趣:

  • 2011年01月2日 -- 三里屯首发拿到M9啦
    真是千呼万唤始出来啊...本来打算1号早上起的早早的先去天安门看升旗,然后再赶到...
  • 2010年11月25日 -- android读取手机状态及sim卡相关信息
    由于要使用的是ListActivity,所以layout中的ListView的i...
  • 2010年06月27日 -- 把腾讯微博API集成到WordPress主题
    现在已经可以顺利的读出腾讯微博了,我也不想把这个东西做成什么插件(关键是不会做插...
  • 2010年06月25日 -- 腾讯微博API
    其实前面用([Java模拟腾讯微博的网页登录失败]和[Java模拟腾讯微博的网页...
  • 2010年03月1日 -- 上班3天干了啥
    由于去年年底项目一期结束了,正在等客户的需求及使用情况的反馈,所以也就没啥事干。...
  • 2010年01月18日 -- 时刻保持饥渴状态
    不知道为啥,突然间感觉过去的一年又被我荒废掉了,貌似是因为这几天看了很多技术牛人...



More from Neeke's Blog

收拾东西回家 11 Mar 28
女朋友过生日 11 Mar 2
博客下雪吧 11 Mar 2
十日杂谈 10 Dec 3
SAS数据集更新 10 Nov 3

^ Back To Top