本文共 3162 字,大约阅读时间需要 10 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | package com.lifengfeng.submitdata.utils; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import android.util.Log; public class NetUtils { private static final String TAG = "NetUtils" ; /** * 使用post的方式登录 * @param userName * @param password * @return */ public static String loginOfPost(String userName, String password) { HttpURLConnection conn = null ; try { URL url = new URL( "" ); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod( "POST" ); conn.setConnectTimeout( 10000 ); // 连接的超时时间 conn.setReadTimeout( 5000 ); // 读数据的超时时间 conn.setDoOutput( true ); // 必须设置此方法, 允许输出 // conn.setRequestProperty("Content-Length", 234); // 设置请求头消息, 可以设置多个 // post请求的参数 String data = "username=" + userName + "&password=" + password; // 获得一个输出流, 用于向服务器写数据, 默认情况下, 系统不允许向服务器输出内容 OutputStream out = conn.getOutputStream(); out.write(data.getBytes()); out.flush(); out.close(); int responseCode = conn.getResponseCode(); if (responseCode == 200 ) { InputStream is = conn.getInputStream(); String state = getStringFromInputStream(is); return state; } else { Log.i(TAG, "访问失败: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null ) { conn.disconnect(); } } return null ; } /** * 使用get的方式登录 * @param userName * @param password * @return 登录的状态 */ public static String loginOfGet(String userName, String password) { HttpURLConnection conn = null ; try { String data = "username=" + URLEncoder.encode(userName) + "&password=" + URLEncoder.encode(password); URL url = new URL( "" + data); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod( "GET" ); // get或者post必须得全大写 conn.setConnectTimeout( 10000 ); // 连接的超时时间 conn.setReadTimeout( 5000 ); // 读数据的超时时间 int responseCode = conn.getResponseCode(); if (responseCode == 200 ) { InputStream is = conn.getInputStream(); String state = getStringFromInputStream(is); return state; } else { Log.i(TAG, "访问失败: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null ) { conn.disconnect(); // 关闭连接 } } return null ; } /** * 根据流返回一个字符串信息 * @param is * @return * @throws IOException */ private static String getStringFromInputStream(InputStream is) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte [] buffer = new byte [ 1024 ]; int len = - 1 ; while ((len = is.read(buffer)) != - 1 ) { baos.write(buffer, 0 , len); } is.close(); String html = baos.toString(); // 把流中的数据转换成字符串, 采用的编码是: utf-8 // String html = new String(baos.toByteArray(), "GBK"); baos.close(); return html; } } |
转载地址:http://zhsel.baihongyu.com/