1.
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括桐柏網(wǎng)站建設(shè)、桐柏網(wǎng)站制作、桐柏網(wǎng)頁制作以及桐柏網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,桐柏網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到桐柏省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
登陸微信開發(fā)者工具,選擇小程序項(xiàng)目
2.
填寫AppID(登陸小程序后臺--設(shè)置--開發(fā)設(shè)置就能看到小程序ID)、項(xiàng)目名稱,點(diǎn)擊「項(xiàng)目目錄」,選擇源碼存儲位置,確定就可以完成源碼導(dǎo)入!
3.
/**
*?文件上傳到微信服務(wù)器
*?@param?fileType?文件類型
*?@param?filePath?文件路徑
*?@return?JSONObject
*?@throws?Exception
*/
public?static?JSONObject?send(String?fileType,?String?filePath)?throws?Exception?{??
String?result?=?null;??
File?file?=?new?File(filePath);??
if?(!file.exists()?||?!file.isFile())?{??
throw?new?IOException("文件不存在");??
}??
/**?
*?第一部分?
*/??
URL?urlObj?=?new?URL(""+?getAccess_token()?+?"type="+fileType+"");??
HttpURLConnection?con?=?(HttpURLConnection)?urlObj.openConnection();??
con.setRequestMethod("POST");?//?以Post方式提交表單,默認(rèn)get方式??
con.setDoInput(true);??
con.setDoOutput(true);??
con.setUseCaches(false);?//?post方式不能使用緩存??
//?設(shè)置請求頭信息??
con.setRequestProperty("Connection",?"Keep-Alive");??
con.setRequestProperty("Charset",?"UTF-8");??
//?設(shè)置邊界??
String?BOUNDARY?=?"----------"?+?System.currentTimeMillis();??
con.setRequestProperty("Content-Type",?"multipart/form-data;?boundary="+?BOUNDARY);??
//?請求正文信息??
//?第一部分:??
StringBuilder?sb?=?new?StringBuilder();??
sb.append("--");?//?必須多兩道線??
sb.append(BOUNDARY);??
sb.append("\r\n");??
sb.append("Content-Disposition:?form-data;name=\"file\";filename=\""+?file.getName()?+?"\"\r\n");??
sb.append("Content-Type:application/octet-stream\r\n\r\n");??
byte[]?head?=?sb.toString().getBytes("utf-8");??
//?獲得輸出流??
OutputStream?out?=?new?DataOutputStream(con.getOutputStream());??
//?輸出表頭??
out.write(head);??
//?文件正文部分??
//?把文件已流文件的方式?推入到url中??
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();??
//?結(jié)尾部分??
byte[]?foot?=?("\r\n--"?+?BOUNDARY?+?"--\r\n").getBytes("utf-8");//?定義最后數(shù)據(jù)分隔線??
out.write(foot);??
out.flush();??
out.close();??
StringBuffer?buffer?=?new?StringBuffer();??
BufferedReader?reader?=?null;??
try?{??
//?定義BufferedReader輸入流來讀取URL的響應(yīng)??
reader?=?new?BufferedReader(new?InputStreamReader(con.getInputStream()));??
String?line?=?null;??
while?((line?=?reader.readLine())?!=?null)?{??
//System.out.println(line);??
buffer.append(line);??
}??
if(result==null){??
result?=?buffer.toString();??
}??
}?catch?(IOException?e)?{??
System.out.println("發(fā)送POST請求出現(xiàn)異常!"?+?e);??
e.printStackTrace();??
throw?new?IOException("數(shù)據(jù)讀取異常");??
}?finally?{??
if(reader!=null){??
reader.close();??
}??
}??
JSONObject?jsonObj?=new?JSONObject(result);??
return?jsonObj;??
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 將請求、響應(yīng)的編碼均設(shè)置為UTF-8(防止中文亂碼)
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 接收參數(shù)微信加密簽名、 時(shí)間戳、隨機(jī)數(shù)
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
PrintWriter out = response.getWriter();
// 請求校驗(yàn)
boolean checkSignature = SignUtil.checkSignature(signature, timestamp, nonce);
if (checkSignature) {
// 調(diào)用核心服務(wù)類接收處理請求
String respXml = processRequest(request);
out.print(respXml);
}
out.close();
out = null;
}