最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 發(fā)送http請求上傳文件功能實(shí)例

 更新時(shí)間:2017年06月07日 10:25:10   作者:阿文丶  
本文通過實(shí)例代碼給大家介紹了Java 發(fā)送http請求上傳文件功能,需要的朋友參考下吧

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

package wxapi.WxHelper; 
import java.io.BufferedReader; 
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLConnection; 
import java.util.Date; 
import java.util.Map; 
import java.util.Map.Entry; 
public class HttpRequestUtil { 
  /** 
   * 發(fā)送get請求 
   * 
   * @param requestUrl 
   *      請求url 
   * @param requestHeader 
   *      請求頭 
   * @param responseEncoding 
   *      響應(yīng)編碼 
   * @return 頁面響應(yīng)html 
   */ 
  public static String sendGet(String requestUrl, Map<String, String> requestHeader, String responseEncoding) { 
    String result = ""; 
    BufferedReader reader = null; 
    try { 
      if (requestUrl == null || requestUrl.isEmpty()) { 
        return result; 
      } 
      URL realUrl = new URL(requestUrl); 
      URLConnection connection = realUrl.openConnection(); 
      connection.setRequestProperty("accept", "text/html, application/xhtml+xml, image/jxr, */*"); 
      connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"); 
      if (requestHeader != null && requestHeader.size() > 0) { 
        for (Entry<String, String> entry : requestHeader.entrySet()) { 
          connection.setRequestProperty(entry.getKey(), entry.getValue()); 
        } 
      } 
      connection.connect(); 
      if (responseEncoding == null || responseEncoding.isEmpty()) { 
        responseEncoding = "UTF-8"; 
      } 
      reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), responseEncoding)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
        result += line; 
      } 
    } catch (Exception e) { 
      System.out.println("發(fā)送GET請求出現(xiàn)異常!"); 
      e.printStackTrace(); 
    } finally { 
      try { 
        if (reader != null) { 
          reader.close(); 
        } 
      } catch (Exception e) { 
        e.printStackTrace(); 
      } 
    } 
    return result; 
  } 
  /** 
   * 發(fā)送post請求 
   *  
   * @param requestUrl 
   *      請求url 
   * @param requestHeader 
   *      請求頭 
   * @param formTexts 
   *      表單數(shù)據(jù) 
   * @param files 
   *      上傳文件 
   * @param requestEncoding 
   *      請求編碼 
   * @param responseEncoding 
   *      響應(yīng)編碼 
   * @return 頁面響應(yīng)html 
   */ 
  public static String sendPost(String requestUrl, Map<String, String> requestHeader, Map<String, String> formTexts, Map<String, String> files, String requestEncoding, String responseEncoding) { 
    OutputStream out = null; 
    BufferedReader reader = null; 
    String result = ""; 
    try { 
      if (requestUrl == null || requestUrl.isEmpty()) { 
        return result; 
      } 
      URL realUrl = new URL(requestUrl); 
      HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection(); 
      connection.setRequestProperty("accept", "text/html, application/xhtml+xml, image/jxr, */*"); 
      connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"); 
      if (requestHeader != null && requestHeader.size() > 0) { 
        for (Entry<String, String> entry : requestHeader.entrySet()) { 
          connection.setRequestProperty(entry.getKey(), entry.getValue()); 
        } 
      } 
      connection.setDoOutput(true); 
      connection.setDoInput(true); 
      connection.setRequestMethod("POST"); 
      if (requestEncoding == null || requestEncoding.isEmpty()) { 
        requestEncoding = "UTF-8"; 
      } 
      if (responseEncoding == null || responseEncoding.isEmpty()) { 
        responseEncoding = "UTF-8"; 
      } 
      if (requestHeader != null && requestHeader.size() > 0) { 
        for (Entry<String, String> entry : requestHeader.entrySet()) { 
          connection.setRequestProperty(entry.getKey(), entry.getValue()); 
        } 
      } 
      if (files == null || files.size() == 0) { 
        connection.setRequestProperty("content-type", "application/x-www-form-urlencoded"); 
        out = new DataOutputStream(connection.getOutputStream()); 
        if (formTexts != null && formTexts.size() > 0) { 
          String formData = ""; 
          for (Entry<String, String> entry : formTexts.entrySet()) { 
            formData += entry.getKey() + "=" + entry.getValue() + "&"; 
          } 
          formData = formData.substring(0, formData.length() - 1); 
          out.write(formData.toString().getBytes(requestEncoding)); 
        } 
      } else { 
        String boundary = "-----------------------------" + String.valueOf(new Date().getTime()); 
        connection.setRequestProperty("content-type", "multipart/form-data; boundary=" + boundary); 
        out = new DataOutputStream(connection.getOutputStream()); 
        if (formTexts != null && formTexts.size() > 0) { 
          StringBuilder sbFormData = new StringBuilder(); 
          for (Entry<String, String> entry : formTexts.entrySet()) { 
            sbFormData.append("--" + boundary + "\r\n"); 
            sbFormData.append("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"\r\n\r\n"); 
            sbFormData.append(entry.getValue() + "\r\n"); 
          } 
          out.write(sbFormData.toString().getBytes(requestEncoding)); 
        } 
        for (Entry<String, String> entry : files.entrySet()) { 
          String fileName = entry.getKey(); 
          String filePath = entry.getValue(); 
          if (fileName == null || fileName.isEmpty() || filePath == null || filePath.isEmpty()) { 
            continue; 
          } 
          File file = new File(filePath); 
          if (!file.exists()) { 
            continue; 
          } 
          out.write(("--" + boundary + "\r\n").getBytes(requestEncoding)); 
          out.write(("Content-Disposition: form-data; name=\"" + fileName + "\"; filename=\"" + file.getName() + "\"\r\n").getBytes(requestEncoding)); 
          out.write(("Content-Type: application/x-msdownload\r\n\r\n").getBytes(requestEncoding)); 
          DataInputStream in = new DataInputStream(new FileInputStream(file)); 
          int bytes = 0; 
          byte[] bufferOut = new byte[1024]; 
          while ((bytes = in.read(bufferOut)) != -1) { 
            out.write(bufferOut, 0, bytes); 
          } 
          in.close(); 
          out.write(("\r\n").getBytes(requestEncoding)); 
        } 
        out.write(("--" + boundary + "--").getBytes(requestEncoding)); 
      } 
      out.flush(); 
      out.close(); 
      out = null; 
      reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), responseEncoding)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
        result += line; 
      } 
    } catch (Exception e) { 
      System.out.println("發(fā)送POST請求出現(xiàn)異常!"); 
      e.printStackTrace(); 
    } finally { 
      try { 
        if (out != null) { 
          out.close(); 
        } 
        if (reader != null) { 
          reader.close(); 
        } 
      } catch (IOException ex) { 
        ex.printStackTrace(); 
      } 
    } 
    return result; 
  } 
} 

以上所述是小編給大家介紹的Java 發(fā)送http請求上傳文件功能實(shí)例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java中如何檢查數(shù)組是否包含某整數(shù)

    Java中如何檢查數(shù)組是否包含某整數(shù)

    這篇文章主要介紹了在?Java?中檢查數(shù)組是否包含某整數(shù),在本文中,我們使用了幾個(gè)內(nèi)置的方法,如anyMatch()、contains()、binarySearch()等,我們將在給定的數(shù)組中找到一個(gè)值,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • java執(zhí)行SQL語句實(shí)現(xiàn)查詢的通用方法詳解

    java執(zhí)行SQL語句實(shí)現(xiàn)查詢的通用方法詳解

    這篇文章主要介紹了java執(zhí)行SQL語句實(shí)現(xiàn)查詢的通用方法詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • SpringBoot使用注解集成Redis緩存的示例代碼

    SpringBoot使用注解集成Redis緩存的示例代碼

    這篇文章主要介紹了在?Spring?Boot?中使用注解集成?Redis?緩存的步驟,包括添加依賴、創(chuàng)建相關(guān)配置類、需要緩存數(shù)據(jù)的類(TestService)以及測試方法(如在?Controller?中的?redisTest?和?redisCache?方法),還對一些關(guān)鍵代碼和配置進(jìn)行了詳細(xì)說明
    2025-01-01
  • java?ThreadPoolExecutor線程池內(nèi)部處理流程解析

    java?ThreadPoolExecutor線程池內(nèi)部處理流程解析

    這篇文章主要為大家介紹了java?ThreadPoolExecutor線程池內(nèi)部處理流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • MybatisPlus代碼生成器使用示例

    MybatisPlus代碼生成器使用示例

    MyBatis-Plus自動(dòng)化的生成與數(shù)據(jù)庫表對應(yīng)的Java代碼文件,本文主要介紹了MybatisPlus代碼生成器使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java Retrofit源碼層深入分析

    Java Retrofit源碼層深入分析

    這篇文章主要介紹了Java Retrofit源碼層分析,Retrofit是一個(gè)RESTful的HTTP網(wǎng)絡(luò)請求框架的封裝,網(wǎng)絡(luò)請求的工作本質(zhì)上是OkHttp完成,而Retrofit僅負(fù)責(zé)網(wǎng)絡(luò)請求接口的封裝
    2023-01-01
  • SpringBoot整合第三方技術(shù)的實(shí)現(xiàn)

    SpringBoot整合第三方技術(shù)的實(shí)現(xiàn)

    本文主要介紹了SpringBoot整合第三方技術(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • dom4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法

    dom4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猟om4j創(chuàng)建和解析xml文檔的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Mybatis和其他主流框架的整合使用過程詳解

    Mybatis和其他主流框架的整合使用過程詳解

    MyBatis最初是Apache的一個(gè)開源項(xiàng)目iBatis,?2010年6月這個(gè)項(xiàng)目由Apache?Software?Foundation遷移到了Google?Code,這篇文章主要介紹了Mybatis和其他主流框架的整合使用,需要的朋友可以參考下
    2023-11-11
  • java生成pdf表格,調(diào)用itext創(chuàng)建的實(shí)例

    java生成pdf表格,調(diào)用itext創(chuàng)建的實(shí)例

    這篇文章主要介紹了java生成pdf表格,調(diào)用itext創(chuàng)建的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論

鄱阳县| 金昌市| 奉新县| 贵德县| 沿河| 静安区| 荆州市| 福清市| 辽宁省| 灵山县| 文水县| 罗定市| 民和| 昭觉县| 和顺县| 漳浦县| 丰顺县| 德兴市| 永安市| 九寨沟县| 桂林市| 读书| 六安市| 嘉定区| 都兰县| 印江| 泸定县| 横峰县| 长宁区| 石泉县| 孝感市| 双牌县| 上饶市| 商洛市| 厦门市| 西安市| 新干县| 乌鲁木齐市| 莎车县| 英德市| 东丽区|