android app与服务器交互
2015-07-28 10:29
204 查看
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; } } }
相关文章推荐
- 去除ListView 上下边界蓝色或黄色阴影
- 微信支付Notice: Use of undefined constant CURLOP_TIMEOUT - assumed
- Android闪屏问题如何Debug
- iOS工程中删除默认的并使用自建的ViewController后黑屏
- iOS中几种数据持久化方案
- android surfaceview 画图帧数控制
- QWidget: must construct a QApplication before a QPaintDevice问题解决方法
- ViewPager实现无限循环切换和手势滑动效果
- iOS路径沙盒文件管理(转载)
- iOS开发图片控件(ImageView)绑定代码并显示一张图片
- iOS开发——keychain的使用
- android开发细节(不定期更新)
- android studio 代理设置
- Android 的View的加载过程
- Spring MVC学习------------WebApplicationContext
- 关于苹果开发者账号
- [iOS] 初探 iOS8 中的 Size Class
- php小程序--记事本--登陆判断
- Android 开发优化 知识点
- 【Unity游戏开发之三】Sprite Packer使用方法