Http方式介面post呼叫工具 HttpUtil
阿新 • • 發佈:2018-12-01
工作中有時候需要呼叫外部的介面,通過http方式呼叫,記錄一下這個工具類。
public class HttpUtil { private static Logger log = LoggerFactory.getLogger(HttpUtil.class); private final static int CONNECT_TIMEOUT = 50000; private static final String CONTENT_TYPE = "application/xml"; private static final String DEFAULT_ENCODING = "UTF-8"; /** * post請求,引數格式設定為xml * @param urlStr * @param data * @return */ public static String postData(String urlStr, String data, String contentType) { BufferedReader reader = null; try { URL url = new URL(urlStr); URLConnection conn = url.openConnection(); conn.setDoOutput(true); conn.setConnectTimeout(CONNECT_TIMEOUT); conn.setReadTimeout(CONNECT_TIMEOUT); if (contentType != null) { conn.setRequestProperty("content-type", contentType); } OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), DEFAULT_ENCODING); if (data == null) { writer.write(""); } else { writer.write(data); } writer.flush(); writer.close(); reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),DEFAULT_ENCODING)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line); sb.append("\r\n"); } return sb.toString(); } catch (IOException e) { e.printStackTrace(); log.error(e.getMessage()); } finally { try { if (reader != null) { reader.close(); } } catch (IOException e) { log.error(e.getMessage()); } } return null; } }