欢迎来到山村网

Java 发送http请求上传文件功能案例

2019-03-09 12:46:22浏览:726 来源:山村网   
核心摘要:具体代码如下所示:package wxapi.WxHelper; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.

具体代码如下所示:

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 {      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, *   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 + "rn");             sbFormData.append("Content-Disposition: form-data; name="" + entry.getKey() + ""rnrn");             sbFormData.append(entry.getValue() + "rn");           }           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 + "rn").getBytes(requestEncoding));           out.write(("Content-Disposition: form-data; name="" + fileName + ""; filename="" + file.getName() + ""rn").getBytes(requestEncoding));           out.write(("Content-Type: application/x-msdownloadrnrn").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(("rn").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("发送POST请求出现异常!");       e.printStackTrace();     } finally {       try {         if (out != null) {           out.close();         }         if (reader != null) {           reader.close();         }       } catch (IOException ex) {         ex.printStackTrace();       }     }     return result;   } } 
(责任编辑:豆豆)
下一篇:

局域网192.168.1.1登陆不了怎么办

上一篇:

linux中nl命令使用介绍

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com