当前位置:操作系统 > 安卓/Android >>

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

1、GET方式
 
其实GET方式说白了,就是拼接字符串。。最后拼成的字符串的格式是: path ?  username= ....& password= ......
 
[java] 
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方式中,一定要设置以下两个请求参数
 
[java]  
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");  
conn.setRequestProperty("Content-Length", entity.length + "");  
 
 
完整代码如下:
 
[java] 
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协议进行了封装
 
[java]  
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方式提交请求
 
[java]  
  
[java]  
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;  
    }  
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,