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 { //使用URL的Get 方式请求服务器 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; } //使用URL的Post 方式请求服务器 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; } //使用HttpClient的Get 方式请求服务器 (HttpClient 过时) 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; } //使用HttpClient的Post 方式请求服务器 (HttpClient 过时) 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; } }
//将InputStream 转为 String
package mydemo.mycom.demo2.utils; import java.io.ByteArrayOutputStream; import java.io.InputStream; public class StreamTools { //InputStream 转为 String 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; } } }
时间: 2024-10-12 18:10:35