日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java postdata_java发送post请求,使用multipart form-data的方式传递参数,可实现服务器间文件上传功能...

發布時間:2023/12/31 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java postdata_java发送post请求,使用multipart form-data的方式传递参数,可实现服务器间文件上传功能... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*** 測試上傳圖片

**/

public static voidtestUploadImage(){

String url= "http://xxxtest/Api/testUploadModelBaking";

String fileName= "e:/username/textures/antimap_0017.png";

Map textMap = new HashMap();//可以設置多個input的name,value

textMap.put("name", "testname");

textMap.put("type", "2");//設置file的name,路徑

Map fileMap = new HashMap();

fileMap.put("upfile", fileName);

String contentType= "";//image/png

String ret =formUpload(url, textMap, fileMap,contentType);

System.out.println(ret);//{"status":"0","message":"add succeed","baking_url":"group1\/M00\/00\/A8\/CgACJ1Zo-LuAN207AAQA3nlGY5k151.png"}

}/*** 上傳圖片

*@paramurlStr

*@paramtextMap

*@paramfileMap

*@paramcontentType 沒有傳入文件類型默認采用application/octet-stream

* contentType非空采用filename匹配默認的圖片類型

*@return返回response數據*/@SuppressWarnings("rawtypes")public static String formUpload(String urlStr, MaptextMap,

MapfileMap,String contentType) {

String res= "";

HttpURLConnection conn= null;//boundary就是request頭和上傳文件內容的分隔符

String BOUNDARY = "---------------------------123821742118716";try{

URL url= newURL(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= newDataOutputStream(conn.getOutputStream());//text

if (textMap != null) {

StringBuffer strBuf= newStringBuffer();

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= newFile(inputValue);

String filename=file.getName();//沒有傳入文件類型,同時根據文件獲取不到類型,默認采用application/octet-stream

contentType = newMimetypesFileTypeMap().getContentType(file);//contentType非空采用filename匹配默認的圖片類型

if(!"".equals(contentType)){if (filename.endsWith(".png")) {

contentType= "image/png";

}else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".jpe")) {

contentType= "image/jpeg";

}else if (filename.endsWith(".gif")) {

contentType= "image/gif";

}else if (filename.endsWith(".ico")) {

contentType= "image/image/x-icon";

}

}if (contentType == null || "".equals(contentType)) {

contentType= "application/octet-stream";

}

StringBuffer strBuf= newStringBuffer();

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(newFileInputStream(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 = newStringBuffer();

BufferedReader reader= new BufferedReader(newInputStreamReader(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) {

System.out.println("發送POST請求出錯。" +urlStr);

e.printStackTrace();

}finally{if (conn != null) {

conn.disconnect();

conn= null;

}

}returnres;

}

總結

以上是生活随笔為你收集整理的java postdata_java发送post请求,使用multipart form-data的方式传递参数,可实现服务器间文件上传功能...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。