当前位置: 代码迷 >> Android >> android端向服务器交付请求的几种方式
  详细解决方案

android端向服务器交付请求的几种方式

热度:6   发布时间:2016-04-28 08:10:47.0
android端向服务器提交请求的几种方式

1、GET方式

其实GET方式说白了,就是拼接字符串。。最后拼成的字符串的格式是: path ?  username= ....& password= ......

public boolean loginByGet(String path, String username , String password) throws Exception{				String url_path = path +"?username=" + URLEncoder.encode(username, "utf-8") + "&password="+password;				URL url = new URL(url_path);		HttpURLConnection conn = (HttpURLConnection) url.openConnection();				conn.setRequestMethod("GET");		conn.setConnectTimeout(5000);		if(conn.getResponseCode() == 200){			return true;		}						return false;	}


2、POST方式

post方式中,一定要设置以下两个请求参数

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");conn.setRequestProperty("Content-Length", entity.length + "");


完整代码如下:

public boolean loginByPost(String path,String username , String password) throws Exception{		System.out.println("LoginService的loginByPost()");		URL url = new URL(path);		HttpURLConnection conn = (HttpURLConnection) url.openConnection();				conn.setRequestMethod("POST");		conn.setConnectTimeout(5000);				String value = "username=" + username +"&" + "password=" +password;        byte[] entity = value.getBytes();		 		conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");		conn.setRequestProperty("Content-Length", entity.length + "");				conn.setDoOutput(true);		OutputStream os = conn.getOutputStream();		os.write(entity);				if(conn.getResponseCode() == 200){			return true;		}				return false;	}


3、通过HttpClient以GET方式提交请求

使用HttpClient这个第三方框架以后,我们在编写代码的时候就看不到URL、conn之类的。他其实就是对Http协议进行了封装

public boolean loginByHttpClientGet(String path,String username , String password) throws Exception{						String value = path + "?username=" + username +"&password=" + password; 		HttpClient httpClient =  new DefaultHttpClient();		HttpGet httpGet = new HttpGet(value);				HttpResponse httpResponse = httpClient.execute(httpGet);	    if(httpResponse.getStatusLine().getStatusCode() == 200){	    	return true;	    }	    	    return false;	}	



4、通过HttpClient以POST方式提交请求

public boolean loginByHttpClientPost(String path,String username , String password)throws Exception{				HttpClient httpClient = new DefaultHttpClient();		HttpPost httpPost = new HttpPost(path);				List<NameValuePair> parameters = new ArrayList<NameValuePair>();		parameters.add(new BasicNameValuePair("username", username));		parameters.add(new BasicNameValuePair("password", password));				UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters,"utf-8");		httpPost.setEntity(entity);		HttpResponse httpResponse = httpClient.execute(httpPost);	    if(httpResponse.getStatusLine().getStatusCode() == 200){	    	return true;	    }	    	    return false;	}


  相关解决方案