java发送http连接
生活随笔
收集整理的這篇文章主要介紹了
java发送http连接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
原生方式:@轉載文章
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.Map;import org.apache.commons.lang.StringUtils;public class HttpGetUtil {/*** Post 請求超時時間和讀取數據的超時時間均為2000ms。** @param urlPath post請求地址* @param parameterData post請求參數* @return String json字符串,成功:code=1001,否者為其他值* @throws Exception 鏈接超市異常、參數url錯誤格式異常*/public static String doPost(String urlPath, String parameterData, String who, String ip) throws Exception {if (null == urlPath || null == parameterData) { // 避免null引起的空指針異常return "";}URL localURL = new URL(urlPath);URLConnection connection = localURL.openConnection();HttpURLConnection httpURLConnection = (HttpURLConnection) connection;httpURLConnection.setDoOutput(true);if (!StringUtils.isEmpty(who)) {httpURLConnection.setRequestProperty("who", who);}if (!StringUtils.isEmpty(ip)) {httpURLConnection.setRequestProperty("clientIP", ip);}httpURLConnection.setRequestMethod("POST");httpURLConnection.setRequestProperty("Accept-Charset", "utf-8");httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));httpURLConnection.setConnectTimeout(18000);httpURLConnection.setReadTimeout(18000);OutputStream outputStream = null;OutputStreamWriter outputStreamWriter = null;InputStream inputStream = null;InputStreamReader inputStreamReader = null;BufferedReader reader = null;StringBuilder resultBuffer = new StringBuilder();String tempLine = null;try {outputStream = httpURLConnection.getOutputStream();outputStreamWriter = new OutputStreamWriter(outputStream);outputStreamWriter.write(parameterData.toString());outputStreamWriter.flush();if (httpURLConnection.getResponseCode() >= 300) {throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());}inputStream = httpURLConnection.getInputStream(); // 真正的發送請求到服務端inputStreamReader = new InputStreamReader(inputStream);reader = new BufferedReader(inputStreamReader);while ((tempLine = reader.readLine()) != null) {resultBuffer.append(tempLine);}} finally {if (outputStreamWriter != null) {outputStreamWriter.close();}if (outputStream != null) {outputStream.close();}if (reader != null) {reader.close();}if (inputStreamReader != null) {inputStreamReader.close();}if (inputStream != null) {inputStream.close();}}return resultBuffer.toString();}public static String doPost(String url, Map<String, Object> params) throws Exception {StringBuffer sb = new StringBuffer();for (Map.Entry<String, Object> entry : params.entrySet()) {sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");}// no matter for the last '&' characterreturn doPost(url, sb.toString(), "", "");}/*** 向指定URL發送GET方法的請求** @param url 發送請求的URL* @param param 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。* @return URL 所代表遠程資源的響應結果*/public static String sendGet(String url, String param, String who, String ip) {String result = "";BufferedReader in = null;try {String urlNameString = url;if (!"".equals(param)) {urlNameString = urlNameString + "?" + param;}URL realUrl = new URL(urlNameString);// 打開和URL之間的連接URLConnection connection = realUrl.openConnection();// 設置通用的請求屬性if (!StringUtils.isEmpty(who)) {connection.setRequestProperty("who", who);}if (!StringUtils.isEmpty(ip)) {connection.setRequestProperty("clientIP", ip);}connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立實際的連接 connection.connect();// 定義 BufferedReader輸入流來讀取URL的響應in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {e.printStackTrace();}// 使用finally塊來關閉輸入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}public static String sendGet(String url, Map<String, Object> params) throws Exception {StringBuffer sb = new StringBuffer();for (Map.Entry<String, Object> entry : params.entrySet()) {sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");}// no matter for the last '&' characterreturn sendGet(url, sb.toString(), "", "");}}?
更多方式:@參考文章
轉載于:https://www.cnblogs.com/yanan7890/p/9651305.html
總結
以上是生活随笔為你收集整理的java发送http连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vivo FunTouch OS 手机系
- 下一篇: caioj 1158 欧拉函数