android get或post及HttpClient与服务器数据交互
1、Service
package mydemo.mycom.demo2.service; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import mydemo.mycom.demo2.utils.StreamTools; /** * Created by Administrator on 2015/5/20. */ public class NetService { public static String loginByGet(String username, String password) { try { String path = "http://192.168.1.110:1010/UserInfo/Login?username=" + username + "&password=" + password; URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); int code = conn.getResponseCode(); if (code == 200) { //请求成功 InputStream is = conn.getInputStream(); String result = StreamTools.readInputStream(is); return result; } else { //请求失败 return null; } } catch (Exception e) { e.printStackTrace(); } return null; } public static String loginByPost(String username, String password) { try { String path = "http://192.168.1.110:1010/UserInfo/Login"; URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("POST"); String data = "username=" + username + "&password=" + password; conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Length", data.length() + ""); //post 的方式 实际上是浏览器把数据 写给了服务器 conn.setDoInput(true); OutputStream os = conn.getOutputStream(); os.write(data.getBytes()); int code = conn.getResponseCode(); if (code == 200) { //请求成功 InputStream is = conn.getInputStream(); String result = StreamTools.readInputStream(is); return result; } else { //请求失败 return null; } } catch (Exception e) { e.printStackTrace(); } return null; } public static String loginByClientGet(String username, String password) { try { HttpClient client = new DefaultHttpClient(); String path = "http://192.168.1.110:1010/UserInfo/Login?username=" + username + "&password=" + password; HttpGet httpget = new HttpGet(path); HttpResponse response = client.execute(httpget); int code = response.getStatusLine().getStatusCode(); if (code == 200) { //请求成功 InputStream is = response.getEntity().getContent(); String result = StreamTools.readInputStream(is); return result; } else { //请求失败 return null; } } catch (Exception e) { e.printStackTrace(); } return null; } public static String loginByClientPost(String username, String password) { try { HttpClient client = new DefaultHttpClient(); String path = "http://192.168.1.110:1010/UserInfo/Login"; HttpPost httppost = new HttpPost(path); //指定要提交的数据实体 List<NameValuePair> list = new ArrayList<NameValuePair>(); list.add(new BasicNameValuePair("username", username)); list.add(new BasicNameValuePair("password", password)); httppost.setEntity(new UrlEncodedFormEntity(list, "UTF_8")); HttpResponse response = client.execute(httppost); int code = response.getStatusLine().getStatusCode(); if (code == 200) { //请求成功 InputStream is = response.getEntity().getContent(); String result = StreamTools.readInputStream(is); return result; } else { //请求失败 return null; } } catch (Exception e) { e.printStackTrace(); } return null; } }
2.StreamTools
package mydemo.mycom.demo2.utils; import java.io.ByteArrayOutputStream; import java.io.InputStream; public class StreamTools { public static String readInputStream(InputStream is) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len =0; byte[] buffer = new byte[1024]; while((len=is.read(buffer))!=-1) { baos.write(buffer,0,len); } is.close(); baos.close(); byte[] result = baos.toByteArray(); String temp = new String(result); return temp; }catch (Exception e) { e.printStackTrace(); return null; } } }