Neeke

伪全栈攻城狮

Android HTTP GET/POST

android程序HTTP通信的简单示例。纯粹是为了学习+测试,所以存在代码冗余的现象。从一个最简单的登录验证开始,数据的提交方式分别使用GET和POST,利用Toast来提示登录结果。 [caption id="attachment_1318" align="aligncenter" width="320" caption="android http get and post"]android http get and post[/caption] android.php源码:

android主程序源码:
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://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://ineeke.com/android/android.php");
				List params = new ArrayList();
				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加入:

  • 评论列表:
  •  leroy
     发布于 2011-05-12 16:52:12  回复该评论
  • 请问你获得的响应怎么没乱码,我这用你源码写的程序发回来的中文乱码
  •  bb
     发布于 2012-07-17 03:35:34  回复该评论
  • 請問一下 , 我是要用asp.net去寫, 那要怎麼寫, 我之前用Request.Form["xxx"];都沒反應
    請問能幫我解惑ㄇ
  •  tt
     发布于 2012-11-02 14:16:33  回复该评论
  • 你好!我按照你的語法來用...為什麼每次按get程式都自動關閉...
    都無法傳送...我也有加權限阿....到底是少了什麼..

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«   2018年4月   »
1
2345678
9101112131415
16171819202122
23242526272829
30
网站分类
搜索
控制面板
您好,欢迎到访网站!
  查看权限
最新留言
文章归档
友情链接

Powered By Z-BlogPHP 1.5.2 Zero

Copyright Your WebSite.Some Rights Reserved.