java.net.HttpURLConnection 实例

来源:互联网 发布:淘宝老店新开有扶持吗 编辑:程序博客网 时间:2024/06/04 18:22

这段时间接触了java.net ,在此记录下HttpURLConnection 的基本用法



import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class HttpPostUtil {private static final Integer readTimeout = 30000; //30秒private static final Integer connectTimeout = 30000; //30秒private static final String sendEncoding = "UTF-8"; //发送时编码private static final String receiveEncoding = "UTF-8"; //接受时编码/** * post提交 * @param url * @param params * @return */public static String doPost(String url, Map<String, String> params){DataOutputStream ds = null;InputStreamReader isr = null;BufferedReader br = null;try{URL url_ = new URL(url);HttpURLConnection conn = (HttpURLConnection)url_.openConnection();/** 基本参数设置  **/conn.setConnectTimeout(connectTimeout);conn.setReadTimeout(readTimeout);conn.setRequestMethod("POST");conn.setDoInput(true);conn.setDoOutput(true);conn.setUseCaches(false);/** 设置报头信息,根据具体需求具体设置  **/conn.setRequestProperty("encoding", sendEncoding);/** 获取http输出流  **/ds = new DataOutputStream(conn.getOutputStream());ds.write(getParams(params).getBytes(sendEncoding));ds.flush();int code = conn.getResponseCode();if(code == 200){isr = new InputStreamReader(conn.getInputStream(), receiveEncoding);br = new BufferedReader(isr);String line = null;StringBuffer sb = new StringBuffer();while((line = br.readLine()) != null){sb.append(line);}return sb.toString();}else{return "【服务器错误,code="+code+"】";}}catch(Exception e){e.printStackTrace();return e.getMessage();}finally{if(br != null){try {br.close();} catch (IOException e) {e.printStackTrace();}}if(isr != null){try {isr.close();} catch (IOException e) {e.printStackTrace();}}if(ds != null){try {ds.close();} catch (IOException e) {e.printStackTrace();}}}}/** * 拼接参数 * eg : params1=value1¶ms2=value2 * @param params * @return */public static String getParams(Map<String, String> params){if(params == null || params.isEmpty()){return "";}StringBuffer sb = new StringBuffer();Set<String> keys = params.keySet();Iterator<String> it = keys.iterator();while(it.hasNext()){String key = it.next();sb.append(key).append("=").append(params.get(key)).append("&");}return sb.substring(0, sb.length() - 1).toString();}public static void main(String[] args) {Map<String, String> params = new HashMap<String, String>();params.put("p1", "test");params.put("p2", "中文");System.out.println(HttpPostUtil.doPost("url", params));}}

0 0