Java的HttpURLConnection类post带参

来源:互联网 发布:linux审计日志分析 编辑:程序博客网 时间:2024/06/01 09:21
package an;import java.io.BufferedReader;  import java.io.InputStreamReader;  import java.io.OutputStreamWriter;  import java.net.HttpURLConnection;  import java.net.URL;import java.util.HashMap;  import java.util.Map.Entry;import org.htmlparser.Parser;import org.htmlparser.beans.StringBean;import org.htmlparser.util.ParserException;    public class HttpUtil {        public String http(String url, HashMap<String, String> params) throws ParserException {          URL u = null;          HttpURLConnection con = null;          // 构建请求参数          StringBuffer sb = new StringBuffer();          if (params != null) {              for (Entry<String, String> e : params.entrySet()) {                  sb.append(e.getKey());                  sb.append("=");                  sb.append(e.getValue());                  sb.append("&");              }              //sb.substring(0, sb.length() - 1);            sb=sb.deleteCharAt(sb.length() - 1);        }          //System.out.println("send_url:" + url);          //System.out.println("send_data:" + sb.toString());          // 尝试发送请求          try {              u = new URL(url);              con = (HttpURLConnection) u.openConnection();              //// POST 只能为大写,严格限制,post会不识别              con.setRequestMethod("POST");              con.setDoOutput(true);              con.setDoInput(true);              con.setUseCaches(false);              con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");              OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream(), "UTF-8");              osw.write(sb.toString());              osw.flush();              osw.close();          } catch (Exception e) {              e.printStackTrace();          } finally {              if (con != null) {                  con.disconnect();              }          }            // 读取返回内容          StringBuffer buffer = new StringBuffer();          try {              //一定要有返回值,否则无法把请求发送给server端。              BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));              String temp;              while ((temp = br.readLine()) != null) {                  buffer.append(temp);                  buffer.append("\n");              }         } catch (Exception e) {              e.printStackTrace();          }          //用parser解析输出内容        StringBean sBean = new StringBean ();          sBean.setLinks (false);//设置不需要得到页面所包含的链接信息            sBean.setReplaceNonBreakingSpaces(true);//设置将不间断空格由正规空格所替代            sBean.setCollapse(true);//设置将一序列空格由一个单一空格所代替            Parser parser = new Parser();          parser.setInputHTML(buffer.toString());          parser.reset ();          parser.visitAllNodesWith (sBean);          String text = sBean.getStrings ();         return text;      }          public static void main(String[]args) throws ParserException{    HashMap<String, String> parames = new HashMap<String, String>();          parames.put("usrname", "my");          parames.put("password", "123");          HttpUtil hu=new HttpUtil();        String ret=hu.http("http://mail.163.com/", parames);          System.out.println(ret);    }  }  

0 0
原创粉丝点击