使用httpclient提交数据

使用httpclient提交数据  

   apache httpClient 轻量级的浏览器:

使用GET方式提交数据:

代码:

package com.itheima.qqlogin;
		import java.io.InputStream;
		import java.net.HttpURLConnection;
		import java.net.URL;
		import java.net.URLEncoder;
		
		import org.apache.http.HttpResponse;
		import org.apache.http.client.HttpClient;
		import org.apache.http.client.methods.HttpGet;
		import org.apache.http.impl.client.DefaultHttpClient;
		
		import com.itheima.htmlview.utils.StreamTools;
		
		
		
		import android.app.Activity;
		import android.os.Bundle;
		import android.text.TextUtils;
		import android.view.View;
		import android.widget.EditText;
		import android.widget.Toast;
		
		public class MainActivity extends Activity {
	
		private EditText et_name;
	
		private EditText et_pwd;
		@Override
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_main);
			
			et_name = (EditText) findViewById(R.id.et_name);
	
			et_pwd = (EditText) findViewById(R.id.et_pwd);
		
		}
	
		public void login(View view){
			final String name = et_qq.getText().toString().trim();
			
			final String pwd = et_pwd.getText().toString().trim();
			
			if(TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)){
				Toast.makeText(this, "qq和密码不能空", 0).show();
				return;
			}else{
				new Thread(){
					
					public void run() {
						
						try {
							String path = "http://192.168.22.136:8080/web/servlet/LoginServlet?username="+URLEncoder.encode(name,"UTF-8")+"&password="+URLEncoder.encode(pwd,"UTF-8");
	//					
	//						 1、创建一个浏览器:
	
							HttpClient client = new DefaultHttpClient();
	//						   2、输入一个网址:
							HttpGet httpGet = new HttpGet(path);
	//
	//						   3、敲回车
							HttpResponse response = client.execute(httpGet);
							//获取服务器端返回的响应码(状态码)
							int code = 	response.getStatusLine().getStatusCode();
	//						 int code = conn.getResponseCode();
							 if(code == 200){
	//							(2)解析服务器返回的二进制数据,解析成一个字符串
	//							 InputStream is = conn.getInputStream();
								 //获取服务器返回的二进制数据流
								 InputStream is = response.getEntity().getContent();
								 
								 String result = StreamTools.readStream(is);
								 System.out.println("---------"+ result);
							 }
	
						} catch (Exception e) {
							e.printStackTrace();
						}
					};
				}.start();
			}
		}
	     
	}

使用post方式向服务器端提交数据

代码:

package com.itheima.qqlogin;


import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;


import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


import com.itheima.htmlview.utils.StreamTools;


public class MainActivity extends Activity {


	private EditText et_qq;


	private EditText et_pwd;
	
	private Handler handler = new Handler(){
		public void handleMessage(android.os.Message msg) {
			
			String result = (String) msg.obj;
			
			Toast.makeText(MainActivity.this, result, 0).show();
		};
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		et_qq = (EditText) findViewById(R.id.et_qq);


		et_pwd = (EditText) findViewById(R.id.et_pwd);
	
	}


	public void login(View view){
		final String name = et_qq.getText().toString().trim();
		
		final String pwd = et_pwd.getText().toString().trim();
		
		if(TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)){
			Toast.makeText(this, "qq和密码不能空", 0).show();
			return;
		}else{
			new Thread(){
				
				public void run() {
					
					try {
						String path = "http://192.168.22.136:8080/web/servlet/LoginServlet";
//						String data = "username="+name+"&password="+pwd;
						
						String data = "username="+URLEncoder.encode(name,"UTF-8")+"&password="+URLEncoder.encode(pwd,"UTF-8");
						
//						   1、创建一个浏览器:


						HttpClient client = new DefaultHttpClient();
//						   2、输入一个网址:
						HttpPost httpPost = new HttpPost(path);
						
						
						List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
						
						BasicNameValuePair p1 = new BasicNameValuePair("username", name);
						
						BasicNameValuePair p2 = new BasicNameValuePair("password", pwd);
						parameters.add(p1);
						parameters.add(p2);
						//默认使用iso-8859-1编码,需要指定UTF-8
						UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters,"UTF-8");
						
						
//
//						   3、敲回车
						//设置提交的数据
						httpPost.setEntity(entity);
						HttpResponse  response = client.execute(httpPost);
						 
//				   2、服务器返回数据
//				    (1)判断状态码:200 ok,404 没有找到资源、503、509 服务器端错误
						 int code =  response.getStatusLine().getStatusCode();
//						 int code = conn.getResponseCode();
						 if(code == 200){
//							(2)解析服务器返回的二进制数据,解析成一个字符串
							 InputStream is = response.getEntity().getContent();
							 
							 
							 String result = StreamTools.readStream(is);
							 System.out.println("---------"+ result);
							 
							 Message msg = Message.obtain();
							 msg.obj = result;
							 handler.sendMessage(msg);
						 }


						
					} catch (Exception e) {
						e.printStackTrace();
					}
				};
			}.start();
		}
	}
     
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Barry__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值