HttpUrlConnection两种请求数据的方式get和post提交数据

说明:此程序为简单的登录案例 用户名为abc 密码为123 输入正确登陆成功,输入错误登录失败。

服务器代码:使用的时候首先开启tomcat服务器
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class loginServit
 */
@WebServlet("/loginServit")
public class loginServit extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public loginServit() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		//获取用户名和密码
		String username = request.getParameter("username").trim();
		String password = request.getParameter("password").trim();
		//先解决中文问题
		
		//判断账号和密码是否为空
		if(username==null||username.length()==0||password==null||password.length()==0){
			return;
		}else{
			if("abc".equals(username)&&"123".equals(password)){
				response.setContentType("text/html;charset=utf-8");
				response.getWriter().print("登陆成功");
			}else{
				response.getWriter().print("login fail".getBytes());
			}
		}
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

get方式提交参数
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	// 设置一个路径
	private String path = "http://10.0.2.2:8080/day10_login/loginServit";

	private EditText et_username;
	private EditText et_password;
	// Button bt_login;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_username = (EditText) findViewById(R.id.et_password);
		et_password = (EditText) findViewById(R.id.et_username);
		//bt_login = (Button) findViewById(R.id.bt_login);
	}

	public void login(View v) {
		new Thread() {
			public void run() {
				// 获取输入的账号和密码
				String username = et_username.getText().toString().trim();
				String password = et_password.getText().toString().trim();
				String address = path + "?username=" + username + "&password="
						+ password;
				try {
					URL uri = new URL(address);
					HttpURLConnection openConnection = (HttpURLConnection) uri
							.openConnection();
					// 设置请求方式
					openConnection.setRequestMethod("GET");
					// 设置请求超时的是金
					openConnection.setConnectTimeout(10000);
					// 获取响应吗
					int code = openConnection.getResponseCode();
					// 判断响应吗状态
					if (code == 200) {
						// 获取输入流
						InputStream inputStream = openConnection
								.getInputStream();
						// 将读取的东西转换为字符串
						String result = Utils.getString(inputStream);
						showToast(result);
					}
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			};

		}.start();
	}

	public void showToast(final String result) {
		runOnUiThread(new Runnable() {
			@Override
			public void run() {
				Toast.makeText(getApplicationContext(), result,
						Toast.LENGTH_SHORT).show();
			}
		});
	}

}
utils工具类代码:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class Utils {

	public static String getString(InputStream inputStream) throws Exception {
		//创建数组输出流
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		//读取数据
	   int len = 0;
	   byte[] bys = new byte[1024];
	   while((len = inputStream.read(bys))!=-1){
		   bos.write(bys,0,len);
	   }
	   //释放资源
	   inputStream.close();
	   //转换为字符串
	   byte[] byteArray = bos.toByteArray();
	   //转换为字符串
	    String result = new String(byteArray);
	    return result;
	}

}
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class Utils {

	public static String getString(InputStream inputStream) throws Exception {
		//创建数组输出流
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		//读取数据
	   int len = 0;
	   byte[] bys = new byte[1024];
	   while((len = inputStream.read(bys))!=-1){
		   bos.write(bys,0,len);
	   }
	   //释放资源
	   inputStream.close();
	   //转换为字符串
	   byte[] byteArray = bos.toByteArray();
	   //转换为字符串
	    String result = new String(byteArray);
	    return result;
	}

}

post方式提交数据:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText et_username;
	private EditText et_password;
	private Button bt_login;
	private String path="http://10.0.2.2:8080/day10_login/loginServit";

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_username = (EditText) findViewById(R.id.et_username);
        et_password = (EditText) findViewById(R.id.et_password);
        bt_login = (Button) findViewById(R.id.bt_login);
        //给按钮设置监听事件
        bt_login.setOnClickListener(new MyOnclickListener());
    }
	public class MyOnclickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
            //创建子线程,并启动	
			new Thread(){
				public void run() {
					//获取输入的账号和密码
					String username = et_username.getText().toString().trim();
					String password = et_password.getText().toString().trim();
					//设置参数
					String params = "username="+username+"&password="+password;
					//设置网络
					try {
						URL url = new URL(path);
						HttpURLConnection connection = (HttpURLConnection) url.openConnection();
						//设置请求的方式
						connection.setRequestMethod("POST");
						//设置请求超时事件
						connection.setConnectTimeout(10000);
						//设置两个请求头
						connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
						//告诉服务器传递数据的长度
						connection.setRequestProperty("Content-Length", String.valueOf(params.length())); 
						//打开输出流
						connection.setDoOutput(true);
						//通过流把数据写到服务端
						connection.getOutputStream().write(params.getBytes());
						//获取响应吗
						int code = connection.getResponseCode();
						//判断响应吗的状态
						if(code==200){
							InputStream inputStream = connection.getInputStream();
							String result = Utils.getString(inputStream);
							showToast(result);
						}
						
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				};
			}.start();
		}
		
	}
	public void showToast(final String result){
		runOnUiThread(new Runnable() {
			
			@Override
			public void run() {
    			Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();	
			}
		});
	}

}
工具类代码相同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值