Java 後臺模擬POST上傳
package org.lives.platform.upload.utils; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.activation.MimetypesFileTypeMap; import org.junit.Test; import org.liufeng.weixin.pojo.AccessToken; import org.liufeng.weixin.util.WeixinUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class HttpPostUploadUtil { /** * @param args */ public static void main(String[] args) { //要上傳的檔案地址 String filepath = "F:\\2.png"; String urlStr = "http://localhost:8080/wxchar_menu/upload"; Map<String, String> textMap = new HashMap<String, String>(); textMap.put("name", "testname"); Map<String, String> fileMap = new HashMap<String, String>(); //隨便寫入的引數 fileMap.put("userfile", filepath); String ret = formUpload(urlStr, textMap, fileMap); System.out.println(ret); } /** * * @param urlStr * @param textMap * @param fileMap * @return */ public static String formUpload(String urlStr, Map<String, String> textMap, Map<String, String> fileMap) { String res = ""; HttpURLConnection conn = null; String BOUNDARY = "---------------------------123821742118716"; // boundary就是request頭和上傳檔案內容的分隔符 try { URL url = new URL(urlStr); conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setReadTimeout(30000); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)"); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); OutputStream out = new DataOutputStream(conn.getOutputStream()); // text if (textMap != null) { StringBuffer strBuf = new StringBuffer(); Iterator iter = textMap.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); String inputName = (String) entry.getKey(); String inputValue = (String) entry.getValue(); if (inputValue == null) { continue; } strBuf.append("\r\n").append("--").append(BOUNDARY) .append("\r\n"); strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"\r\n\r\n"); strBuf.append(inputValue); } out.write(strBuf.toString().getBytes()); } // file if (fileMap != null) { Iterator iter = fileMap.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); String inputName = (String) entry.getKey(); String inputValue = (String) entry.getValue(); if (inputValue == null) { continue; } File file = new File(inputValue); String filename = file.getName(); String contentType = new MimetypesFileTypeMap() .getContentType(file); if (filename.endsWith(".png")) { contentType = "image/png"; } if (contentType == null || contentType.equals("")) { contentType = "application/octet-stream"; } StringBuffer strBuf = new StringBuffer(); strBuf.append("\r\n").append("--").append(BOUNDARY) .append("\r\n"); strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"; filename=\"" + filename + "\"\r\n"); strBuf.append("Content-Type:" + contentType + "\r\n\r\n"); out.write(strBuf.toString().getBytes()); 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(); } } byte[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes(); out.write(endData); out.flush(); out.close(); // 資料返回 StringBuffer strBuf = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader( conn.getInputStream())); String line = null; while ((line = reader.readLine()) != null) { strBuf.append(line).append("\n"); } res = strBuf.toString(); reader.close(); reader = null; } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { conn.disconnect(); conn = null; } } return res; } }
這樣的效果就相當於是頁面上的:
相關推薦
Java 後臺模擬POST上傳
package org.lives.platform.upload.utils; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.Fi
java、 http模擬post上傳檔案到服務端 模擬form上傳檔案
需求是這樣的: **1,前後端分離,前端對接pc軟體進行檔案同步的介面,後的springboot微服務進行檔案接收和處理。 2,軟體不能直接呼叫微服務的介面進行上傳,只能先走一下前端controller進行轉發過來()。 3,這樣就只能用httpclien
PHP中curl模擬post上傳及接收檔案
public function Action_Upload(){ $this->path_config(); exit(); $furl="@d:\develop\JMFrameworkWithDemo.rar"; $url= "http://localh
java 後臺模擬post表單請求傳送key-value資料亂碼
首先是key-value的模型: public class PostValue { private String key; private String value; public PostValue(String key, S
Shell 程式設計用CURL 模擬POST 上傳檔案 解決417 Expectation
話不多說直接拋程式碼 curl -H "Expect:" -F "passport=monitor_134" -F "[email protected]/root/monitor/result/mid_1_rule_1.txt" http://192.168.1
java後臺接受app上傳圖片
package com.sujinabo.file; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;
Java 後臺POST模擬檔案上傳
概述 廢話不多說,直接擼程式碼 程式碼 1、引入Maven包 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifac
java 後臺通過post請求 上傳檔案
文章轉載:https://blog.csdn.net/wohaqiyi/article/details/77621517 import microservice.fpzj.control.base.BaseController; import org.springframewo
java模擬表單上傳檔案,java通過模擬post方式提交表單實現圖片上傳功能例項
package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.
java Ueditor 百度編輯器 整合ssm後臺多圖片上傳,無縫加入專案做新增儲存
效果圖 多圖片單圖片 上傳到後臺 本地儲存。編輯框回顯,複製貼上直接用,適合實際專案中做 內容發表,發表文章等等編輯自定義上傳圖片 多圖片到後臺路徑,看了網上一推教程,走了很多彎路,簡單明瞭 ,複製貼上直接用 專案地址 https://download.csdn.net/d
java後臺模擬生成GET/POST請求servlet
Servlet是SUN指定的Java伺服器端程式設計規範,用以處理來自客戶端的請求,處理並做出響應的一套基礎API。Servlet是執行在Servlet容器中的Java小程式,容器執行在伺服器端,伺服器偵聽特定埠的請求,並解析請求地址,將請求物件送給容器中的Serv
Java 後臺模擬傳送 POST GET 請求
1.通過get方式傳遞伺服器資料 /** * 傳送GET請求 * @param path 請求路徑 * @param params 請求引數 * @param encoding 編碼 * @return 請求是否成功 */ private sta
Django後臺獲取前端post上傳的檔案
由於初學Django所以對於其特有的表單模板和models中的filefiled並不是特別熟悉。因此在本次開發中還是依照以往自己在html中寫好圖片提交表單: 注意在<form>表單的定義中一定要加上enctype= “multipart/form-data
WinForm POST上傳與後臺接收
進行 emp post gb2312 exce cred stringbu 分隔線 adf 前端 using System;using System.Collections.Generic;using System.ComponentModel;using Sy
java後臺模擬傳送post請求,get也請用此種方式避免編碼問題
public static String geturl1(String geturl,String content) throws Exception { //請求的webse
java後臺模擬瀏覽器請求--GET/POST
package com.cplatform.movie.back.test; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStrea
Java實現拖拽上傳
itl filename 表單元 ava 100% ondrag nco write obj 原文:http://www.open-open.com/code/view/1437358795584 在項目開發中由於實際需求,需要開發拖拽上傳的功能,ok! 先看效果圖
iOS Post上傳圖片, 文件流的形式
ssi 標準 請求 圖片服務器 dict html mimetype object 屬性 最近看到群裏很多小夥伴有問上傳圖片服務器收不到, 解析不了. 可以說就一個屬性 ContentType , 不論你使用第三方的AFN, 還是自己封裝NSURLSesstion. 都
eclipse用法之java中文件的上傳操作
服務器 lock 內容 div use continue type dex ole 一、單文件上傳: 1.首先前端頁面的編寫只有一個註意項:就是上傳的文件中有圖片時更改表單項的entype屬性為:enctype="multipart/form-data"
fastDFS與java整合文件上傳下載
snap spa generate mapping oba exe try file getclass 準備 下載fastdfs-client-java源碼 源碼地址 密碼:s3sw 修改pom.xml 第一個plugins是必需要的,是maven用來編譯的插件,第二