การจัดการวัสดุ WeChat และการโพสต์จำนวนมากไม่เป็นมิตรกับชวา บทความนี้แนะนำเฉพาะวัสดุชั่วคราวใหม่และวัสดุถาวรใหม่และเพิ่มส่วนที่เหลือโดยการรับลบและแก้ไข
มักจะมีสถานการณ์ที่จำเป็นต้องใช้วัสดุมัลติมีเดียชั่วคราวสำหรับบัญชีอย่างเป็นทางการ ตัวอย่างเช่นเมื่อใช้อินเทอร์เฟซโดยเฉพาะอย่างยิ่งเมื่อส่งข้อความการดำเนินการเช่นการได้รับและการเรียกไฟล์มัลติมีเดียข้อความมัลติมีเดียจะดำเนินการผ่าน Media_ID อินเทอร์เฟซการจัดการวัสดุ เปิดรับหมายเลขการสมัครสมาชิกที่ได้รับการรับรองทั้งหมดและหมายเลขบริการ
ข้อ จำกัด ด้านวัสดุ
รูปภาพ: 2M, รองรับ PNG/JPEG/JPG/GIF รูปแบบเสียง: 2M, ความยาวการเล่นไม่เกิน 60s, รองรับวิดีโอรูปแบบ AMR/MP3 (วิดีโอ): 10MB, รองรับรูปแบบ MP4 รูปแบบรูปแบบหนึ่งรูปแบบ: 64KB, รองรับรูปแบบ JPG
1. เพิ่มวัสดุชั่วคราว
อินเทอร์เฟซ: https://api.weixin.qq.com/cgi-bin/media/upload?access_token=access_token&type=type จากนั้นผ่านประเภทไฟล์สื่อซึ่งสามารถเป็นภาพ (ภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ) และ Thumbnail (Thumb)
1. บัญชีการสมัครสมาชิกและบริการจะต้องได้รับการรับรอง
2. วัสดุชั่วคราว media_id สามารถนำกลับมาใช้ใหม่ได้
3. ไฟล์สื่อจะถูกเก็บไว้ในพื้นหลัง WeChat เป็นเวลา 3 วันนั่นคือ Media_ID จะไม่ถูกต้องหลังจาก 3 วัน
/ ** * อัปโหลดวัสดุชั่วคราว (ท้องถิ่น) * * @param AccessToken * @param ประเภท * ประเภทไฟล์สื่อรวมถึงรูปภาพ (ภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ) และรูปแบบหนึ่งรูปแบบ (นิ้วหัวแม่มือ) * @param พา ธ ภาพ * @return treemap <string, string> params = new treemap <> (); params.put ("access_token", AccessToken); params.put ("type", พิมพ์); ลอง {string json = httpsuploadmediafile (systemconfig.post_method, wechatconfig.upload_temp_media_type_url, params, พา ธ ); ผลลัพธ์ = jsonutil.FromjSonstring (JSON, UPLOADMEDIASRESULT.CLASS); } catch (exception e) {e.printstacktrace (); } ผลตอบแทนผลลัพธ์; } / ** * อัปโหลดวัสดุชั่วคราว (เครือข่าย) * * @param AccessToken * @param ประเภท * ประเภทไฟล์สื่อรวมถึงรูปภาพ (ภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ) และรูปแบบหนึ่งรูปแบบ (นิ้วหัวแม่มือ) * @param Path * @@return treemap <string, string> params = new treemap <> (); params.put ("access_token", AccessToken); params.put ("type", พิมพ์); ลอง {string json = httpsuploadmedia (systemconfig.post_method, wechatconfig.upload_temp_media_type_url, params, เส้นทาง, 0, 0); ผลลัพธ์ = jsonutil.FromjSonstring (JSON, UPLOADMEDIASRESULT.CLASS); } catch (exception e) {e.printstacktrace (); } ผลตอบแทนผลลัพธ์; -2. เพิ่มวัสดุถาวร
อินเทอร์เฟซ: https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=access_token&type=type ประเภทไฟล์สื่อรวมถึงภาพ (ภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ, ข้อยกเว้น)
/ ** * อัปโหลดวัสดุถาวร (ท้องถิ่น) * * @param AccessToken * @param ประเภท * ประเภทไฟล์สื่อรวมถึงรูปภาพ (ภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ) และรูปแบบหนึ่งรูปแบบ (นิ้วโป้ง) * @return */ สาธารณะ treemap <string, string> params = new treemap <> (); params.put ("access_token", AccessToken); params.put ("type", พิมพ์); ลอง {string json = httpsuploadmediafile (systemconfig.post_method, wechatconfig.upload_forever_media_type_url, params, พา ธ ); ผลลัพธ์ = jsonutil.FromjSonstring (JSON, UPLOADMEDIASRESULT.CLASS); } catch (exception e) {e.printstacktrace (); } ผลตอบแทนผลลัพธ์; } / ** * อัปโหลดวัสดุถาวร (เครือข่าย) * * @param AccessToken * @param ประเภท * ประเภทไฟล์สื่อรวมถึงรูปภาพ (ภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ) และรูปแบบหนึ่งรูปแบบ (นิ้วหัวแม่มือ) * @return * / สาธารณะ treemap <string, string> params = new treemap <> (); params.put ("access_token", AccessToken); params.put ("type", พิมพ์); ลอง {string json = httpsuploadmedia (systemconfig.post_method, wechatconfig.upload_forever_media_type_url, params, เส้นทาง, 0, 0); ผลลัพธ์ = jsonutil.FromjSonstring (JSON, UPLOADMEDIASRESULT.CLASS); } catch (exception e) {e.printstacktrace (); } ผลตอบแทนผลลัพธ์; -ควรให้ความสนใจเป็นพิเศษเพื่อเพิ่มสื่อวิดีโอถาวร เมื่ออัปโหลดสื่อวิดีโอคุณจะต้องโพสต์แบบฟอร์มอื่นด้วยคำอธิบาย ID รวมถึงข้อมูลคำอธิบายของชื่อวัสดุและบทนำและรูปแบบเนื้อหาคือ JSON
/ ** * อัปโหลดวัสดุถาวร (วิดีโอ) * * @param AccessToken * @return */ สตริงคงที่สาธารณะ uploadforevermediafile (สตริง accessToken, ชื่อสตริง, บทนำสตริง, พา ธ สตริง) {treemap <สตริง, สตริง> พารามิเตอร์ = ใหม่ params.put ("access_token", AccessToken); params.put ("type", "video"); String Medicleid = null; ลอง {string json = httpsuploadvideomediafile (systemconfig.post_method, wechatconfig.upload_forever_media_type_url, params, เส้นทาง, ชื่อ, บทนำ); medicleid = jsonutil.fromjsonstring (json, "media_id"); } catch (exception e) {e.printstacktrace (); } return medicleid; } / ** * อัปโหลดวัสดุถาวร (วิดีโอ, เครือข่าย) * * @param AccessToken * @return * / สตริงคงที่สาธารณะ uploadForevermedia (สตริง accessToken, ชื่อสตริง, บทนำสตริง, เส้นทางสตริง) params.put ("access_token", AccessToken); params.put ("type", "video"); String Medicleid = null; ลอง {string json = httpsuploadvideomedia (SystemConfig.post_method, wechatconfig.upload_forever_media_type_url, params, เส้นทาง, ชื่อ, บทนำ, 0, 0); medicleid = jsonutil.fromjsonstring (json, "media_id"); } catch (exception e) {e.printstacktrace (); } return medicleid; -3. เพิ่มวัสดุกราฟิกถาวร
อินเทอร์เฟซ: https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=access_token โปรดดูคลาสเอนทิตี UploadNewsMedia สำหรับข้อมูลโพสต์
สำหรับวัสดุที่ใช้กันทั่วไปนักพัฒนาสามารถอัปโหลดไปยังเซิร์ฟเวอร์ WeChat ผ่านอินเทอร์เฟซนี้และใช้อย่างถาวร
1. หลังจากเพิ่มวัสดุภาพถาวรแล้วมันจะถูกส่งกลับไปยังนักพัฒนาพร้อม URL นักพัฒนาสามารถใช้ภายในชื่อโดเมน Tencent (ใช้นอกชื่อโดเมน Tencent และรูปภาพจะถูกบล็อก)
2. จำนวนวัสดุที่บันทึกไว้ทั้งหมดในบัญชีอย่างเป็นทางการถูก จำกัด ไว้ที่: ขีด จำกัด สูงสุดของวัสดุกราฟิกและข้อความข้อความและวัสดุรูปภาพคือ 5,000 และประเภทอื่น ๆ คือ 1,000
3. ในเนื้อหาเฉพาะของกราฟิกและข้อความแบ็กเอนด์ WeChat จะกรองลิงค์รูปภาพภายนอกและ URL รูปภาพจะต้องอัปโหลดผ่าน "อัปโหลดภาพในอินเทอร์เฟซกราฟิกและข้อความเพื่อรับ URL"
4. รูปภาพที่อัปโหลดบนอินเทอร์เฟซ "อัปโหลดรูปภาพในข้อความเพื่อรับ URL" ไม่ได้ จำกัด ขีด จำกัด 5,000 รูปภาพในห้องสมุดวัสดุของบัญชีอย่างเป็นทางการ รูปภาพรองรับรูปแบบ JPG/PNG เท่านั้นและขนาดจะต้องน้อยกว่า 1MB
5. ข้อความกราฟิกและข้อความสนับสนุนความสามารถในการแทรกบัญชีของคุณเองและบัญชีสาธารณะอื่น ๆ ลงในข้อความหลักและโพสต์ลิงก์ไปยังบทความ
/ ** * วัสดุสำหรับการอัปโหลดข้อความกราฟิกและข้อความถาวร * * @param AccessToken * โทเค็นที่ได้รับอนุญาต * @param Entity * อ็อบเจ็กต์รูปภาพและข้อความ * @return */ สาธารณะ uploadediasresult uploadNewsMedia treemap <string, string> params = new treemap <> (); params.put ("access_token", AccessToken); // โพสต์พารามิเตอร์ที่ส่ง treemap <string, list <uploadNewsMedia >> dataparams = new TreeMap <string, list <uploadNewsMedia>> (); dataparams.put ("บทความ", เอนทิตี); String data = jsonutil.tojsonstring (dataparams); String json = httprequtil.httpsdefaultExecute (SystemConfig.post_method, wechatconfig.upload_forever_news_media_url, params, ข้อมูล); ผลลัพธ์ = jsonutil.FromjSonstring (JSON, UPLOADMEDIASRESULT.CLASS); ผลการกลับมา; -4. อัปโหลดรูปภาพในข้อความเพื่อรับ URL
อินเตอร์เฟส: https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=access_token
รูปภาพที่อัปโหลดบนอินเทอร์เฟซนี้ไม่ได้ จำกัด จำนวน 5,000 รูปภาพในห้องสมุดวัสดุของบัญชีอย่างเป็นทางการ รูปภาพรองรับรูปแบบ JPG/PNG เท่านั้นและขนาดจะต้องน้อยกว่า 1MB URL ที่ส่งคืนโดยอินเทอร์เฟซนี้คือ URL ในการอัปโหลดภาพซึ่งสามารถวางไว้ในข้อความ
/ ** * อัปโหลดรูปภาพในข้อความเพื่อรับ URL (local) * * @param AccessToken * @param Path * @return */ สตริงคงที่สาธารณะ uploadimgmediafile (สตริง accessToken, เส้นทางสตริง) {treemap <สตริง, สตริง> พารามิเตอร์ใหม่ params.put ("access_token", AccessToken); สตริง url = null; ลอง {string json = httpsuploadmediafile (systemconfig.post_method, wechatconfig.upload_img_media_url, params, พา ธ ); url = jsonutil.fromjsonstring (json, "url"); } catch (exception e) {e.printstacktrace (); } return url; } / ** * อัปโหลดภาพในข้อความเพื่อรับ URL (เครือข่าย) * * @Param AccessToken * @Param Path * @return * / String String สาธารณะ uploadimgmedia (String AccessToken, String Path) params.put ("access_token", AccessToken); สตริง url = null; ลอง {string json = httpsuploadmedia (systemconfig.post_method, wechatconfig.upload_img_media_url, params, พา ธ , 0, 0); url = jsonutil.fromjsonstring (json, "url"); } catch (exception e) {e.printstacktrace (); } return url; -V. เครื่องมือบางอย่าง
คลาสการกำหนดค่า
สตริงสุดท้ายคงที่สาธารณะ upload_img_media_url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg"; สตริงสุดท้ายคงที่ public upload_forever_news_media_url = "https://api.weixin.qq.com/cgi-bin/material/add_news"; สตริงสุดท้ายคงที่ upload_temp_media_type_url = "https://api.weixin.qq.com/cgi-bin/media/upload"; สตริงสุดท้ายคงที่ upload_forever_media_type_url = "https://api.weixin.qq.com/cgi-bin/material/add_material";
อัปโหลดคลาสกราฟิกและข้อความวัสดุส่งคืนคลาส
แพ็คเกจ com.phil.wechat.msg.model.media; / *** ผลลัพธ์ที่ส่งคืนโดยการอัปโหลดวัสดุกราฟิกและข้อความข้อความ* @author Phil* @date 20 กันยายน 2017**/ คลาสสาธารณะ UploadMediasResult {ประเภทสตริงส่วนตัว; // ประเภทไฟล์สื่อรวมถึงรูปภาพ (รูปภาพ), เสียง (เสียง), วิดีโอ (วิดีโอ) และรูปขนาดย่อ (นิ้วหัวแม่มือ), จำนวนครั้งคือข่าวนั่นคือสตริงส่วนตัว media_id; // ไฟล์สื่อ/ตัวระบุเฉพาะที่ได้รับหลังจากอัปโหลดกราฟิกและข้อความส่วนตัวสตริงส่วนตัวที่สร้างขึ้น _at; // เวลาอัปโหลดไฟล์สื่อ}อัพโหลดคลาสวัสดุกราฟิกและข้อความ
แพ็คเกจ com.phil.wechat.msg.model.media; นำเข้า java.io.serializable; / *** อัปโหลดคลาสข้อความกราฟิกคลาสเอนทิตี* @author Phil* @date 20 กันยายน 2017*/ คลาสสาธารณะ UploadNewsMedia ใช้ serializable {ส่วนตัวคงที่สุดท้าย Long SerialVersionuid = 6551817058101753854L; สตริงส่วนตัว Thumb_media_id; // media_id ของรูปขนาดย่อของข้อความกราฟิกสามารถรับสตริงส่วนตัวในอินเตอร์เฟสไฟล์มัลติมีเดียรองรับการสนับสนุนพื้นฐาน; // ผู้แต่งชื่อสตริงส่วนตัวข้อความกราฟิก; // ชื่อเรื่องของข้อความกราฟิกสตริงส่วนตัว content_source_url; // คลิกลิงก์เพื่ออ่านเนื้อหาสตริงส่วนตัวข้อความต้นฉบับ // เนื้อหาของหน้าข้อความกราฟิกรองรับ HTML TAG Private String Digest; // คำอธิบายของข้อความกราฟิกส่วนตัว int show_conver_pic; // ไม่ว่าจะแสดงเป็นหน้าปก 1 หมายถึงมันจะแสดงเป็นหน้าปก 0 ไม่แสดงเป็นหน้าปก}วิธีการอัปโหลด
/** * อัปโหลดไฟล์สื่อ (local) * * @param เมธอด * วิธีการร้องขอ get/post * @param พา ธ * เส้นทาง API * @param พารามิเตอร์ * พารามิเตอร์ API * @param MediaPath * เส้นทางของภาพ/เพลงที่จะอัปโหลด * @return * @throws @throws url url = url ใหม่ (setparmas (param, path, "")); เอาท์พุทเอาท์พุท = null; datainputStream inputStream = null; ลอง {file file = ไฟล์ใหม่ (MediaPath); if (! file.isfile () ||! file.exists ()) {โยน iOexception ใหม่ ("ไม่มีไฟล์"); } httpurlConnection con = (httpurlConnection) url.openconnection (); Con.setDoInput (จริง); Con.setDoOutput (จริง); Con.setUsecaches (เท็จ); Con.setRequestMethod (SystemConfig.post_Method); // ตั้งค่าข้อมูลส่วนหัวคำขอ con.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); con.setRequestProperty ("charset", systemconfig.default_character_encoding); // ตั้งค่าขอบเขตขอบเขตของสตริง = "-----------" + System.currentTimeMillis (); con.setRequestProperty ("เนื้อหาประเภท", "multipart/form-data; boundary =" + ขอบเขต); // ร้องขอข้อมูลข้อความ // ส่วนที่ 1 เอาต์พุต = ใหม่ dataOutputStream (con.getOutputStream ()); ioutils.write (("-" + Boundary + "/r/n").getBytes(SystemConfig.default_character_encoding), เอาต์พุต); ioutils.write (("เนื้อหา-การจัดวาง: form-data; name =/" media/"; filename =/" " + file.getName () +"/"/r/n") ioutils.write ("เนื้อหาประเภท: แอปพลิเคชัน/octet-stream/r/n/r/n" .getBytes (SystemConfig.default_character_encoding), เอาต์พุต); // ioutils.write (("content-type:" + fileext + "/r/n/r/n"). getBytes (), เอาต์พุต); // ไฟล์ส่วนร่างกาย // กดไฟล์ลงใน URL โดยการสตรีมไฟล์ inputStream = ใหม่ datainputStream (ใหม่ FileInputStream (ไฟล์)); ioutils.copy (inputstream, output); // การสิ้นสุดส่วน ioutils.write (("/r/n--" + ขอบเขต + "-/r/n"). getBytes (SystemConfig.default_character_encoding), เอาต์พุต); output.flush (); result = inputStreamToString (con.getInputStream ()); } catch (malformedurlexception e) {e.printstacktrace (); } catch (protocolexception e) {e.printstacktrace (); } catch (ioexception e) {โยน iOexception ใหม่ ("อ่านข้อผิดพลาดข้อมูล"); } ในที่สุด {ioutils.closequietly (เอาท์พุท); ioutils.closequietly (inputstream); } ผลตอบแทนผลลัพธ์; }/** * อัปโหลดไฟล์สื่อ (ไม่สามารถเป็นท้องถิ่นได้) * * @param เมธอด * วิธีการร้องขอ get/post * @param path * เส้นทาง API * @param พารามิเตอร์ * พารามิเตอร์ API * @param MediaPath * เส้นทางของภาพ/เพลงที่จะอัปโหลด * @param conntime * httpsuploadmedia (เมธอดสตริง, พา ธ สตริง, แผนที่ <สตริง, สตริง> พารามิเตอร์, สตริง mediaPath, int conntime, int readtime) พ่นข้อยกเว้น {string result = ""; url url = url ใหม่ (setparmas (param, path, "")); เอาท์พุทเอาท์พุท = null; bufferedInputStream inputStream = null; ลอง {String Boundary = "----"; httpurlConnection conn = getConnection (วิธีการ, URL); conn.setConnectTimeOut (conntime == 0? default_conntime: conntime); conn.setReadtimeout (readtime == 0? default_upload_readtime: readtime); conn.setRequestProperty ("เนื้อหาประเภท", "multipart/form-data; boundary =" + ขอบเขต); output = conn.getOutputStream (); URL MediaUrl = URL ใหม่ (MediaPath); if (mediaUrl! = null) {httpurlConnection mediaConn = (httpurlconnection) mediaurl.openconnection (); MediaConn.SetDoOutput (จริง); MediaConn.SetUsecaches (เท็จ); MediaConn.SetRequestMethod (SystemConfig.get_Method); MediaConn.SetConnectTimeOut (conntime == 0? default_conntime: conntime); MediaConn.SetReadTimeOut (readtime == 0? default_upload_readtime: readtime); สตริง connType = mediaConn.getContentType (); // รับสตริงนามสกุลไฟล์ fileext = getFileExt (conntype); ioutils.write (("-" + ขอบเขต + "/r/n"). getBytes (), เอาต์พุต); ioutils.write (("เนื้อหา-การจัดสรร: form-data; name =/" media/"; filename =/" " + getFilename (MediaPath) +"/"/r/n"). getBytes (), เอาท์พุท); ioutils.write (("เนื้อหาประเภท:" + fileext + "/r/n/r/n"). getBytes (), เอาต์พุต); inputStream = ใหม่ bufferedInputStream (mediaConn.getInputStream ()); ioutils.copy (inputstream, output); ioutils.write (("/r/n ----" + ขอบเขต + "-/r/n"). getBytes (), เอาต์พุต); MediaConn.Disconnect (); // รับอินพุตสตรีมผลลัพธ์ผลลัพธ์ = inputStreamToString (conn.getInputStream ()); }} catch (malformedurlexception e) {e.printstacktrace (); } catch (protocolexception e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ioutils.closequietly (เอาท์พุท); ioutils.closequietly (inputstream); } ผลตอบแทนผลลัพธ์; }/** * อัปโหลดไฟล์สื่อวิดีโอ (local) * * @param เมธอด * วิธีการขอวิธีรับ/โพสต์ * @param พา ธ * เส้นทาง API * @param พารามิเตอร์ * พารามิเตอร์ API * @param MediaPath * เส้นทางของเสียงที่จะอัปโหลด * @param title * @param คำแนะนำวิดีโอ * @return แผนที่ <สตริง, สตริง> พารามิเตอร์, สตริง MediaPath, ชื่อสตริง, บทนำสตริง) พ่นข้อยกเว้น {สตริงผลลัพธ์ = null; url url = url ใหม่ (setparmas (param, path, "")); เอาท์พุทเอาท์พุท = null; datainputStream inputStream = null; ลอง {file file = ไฟล์ใหม่ (MediaPath); if (! file.isfile () ||! file.exists ()) {โยน iOexception ใหม่ ("ไม่มีไฟล์"); } httpurlConnection con = (httpurlConnection) url.openconnection (); Con.setDoInput (จริง); Con.setDoOutput (จริง); Con.setUsecaches (เท็จ); Con.setRequestMethod (SystemConfig.post_Method); // ตั้งค่าข้อมูลส่วนหัวคำขอ con.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); con.setRequestProperty ("charset", systemconfig.default_character_encoding); // ตั้งค่าขอบเขตขอบเขตของสตริง = "-----------" + System.currentTimeMillis (); con.setRequestProperty ("เนื้อหาประเภท", "multipart/form-data; boundary =" + ขอบเขต); // ขอข้อมูลร่างกาย // ส่วนที่ 1 เอาท์พุท = ใหม่ dataOutputStream (con.getOutputStream ()); ioutils.write (("-" + Boundary + "/r/n").getBytes(SystemConfig.default_character_encoding), เอาต์พุต); ioutils.write (("เนื้อหา-การจัดสรร: form-data; name =/" media/"; filename =/" " + file.getName () +"/"/r/n") .getBytes (), เอาต์พุต); ioutils.write ("เนื้อหาประเภท: วิดีโอ/mp4/r/n/r/n" .getBytes (), เอาต์พุต); // ไฟล์ส่วนร่างกาย // กดไฟล์ลงใน URL โดยการสตรีมไฟล์ inputStream = ใหม่ datainputStream (ใหม่ FileInputStream (ไฟล์)); ioutils.copy (inputstream, output); // การสิ้นสุดส่วน ioutils.write (("-" + ขอบเขต + "/r/n").getBytes(SystemConfig.default_character_encoding), เอาต์พุต); ioutils.write ("เนื้อหา-การจัดสรร: form-data; name =/" คำอธิบาย/";/r/n/r/n" .getBytes (SystemConfig.default_character_encoding), เอาต์พุต); ioutils.write (("{/" title/":/" " + title +"/",/" บทนำ/":/" " + บทนำ +"/"}") .getBytes (SystemConfig.default_character_encoding) ioutils.write (("/r/n--" + ขอบเขต + "-/r/n/r/n"). getBytes (SystemConfig.default_character_encoding), เอาต์พุต); output.flush (); result = inputStreamToString (con.getInputStream ()); } catch (malformedurlexception e) {e.printstacktrace (); } catch (protocolexception e) {e.printstacktrace (); } catch (ioexception e) {โยน iOexception ใหม่ ("อ่านข้อผิดพลาดข้อมูล"); } ในที่สุด {ioutils.closequietly (เอาท์พุท); ioutils.closequietly (inputstream); } ผลตอบแทนผลลัพธ์; } /** * อัปโหลดไฟล์สื่อวิดีโอ (เครือข่าย) * * @param เมธอด * วิธีการขอวิธีรับ /โพสต์ * @param พา ธ * เส้นทาง API * @param พารามิเตอร์ * พารามิเตอร์ API * @param MediaPath * เส้นทางของเสียงที่จะอัปโหลด * @param ชื่อวิดีโอ * @param ข้อยกเว้น */ สตริงคงที่สาธารณะ httpsuploadVideomedia (วิธีการสตริง, พา ธ สตริง, แผนที่ <สตริง, สตริง> พาราม url url = url ใหม่ (setparmas (param, path, "")); เอาท์พุทเอาท์พุท = null; bufferedInputStream inputStream = null; ลอง {String Boundary = "----"; httpurlConnection conn = getConnection (วิธีการ, URL); conn.setConnectTimeOut (conntime == 0? default_conntime: conntime); conn.setReadtimeout (readtime == 0? default_upload_readtime: readtime); conn.setRequestProperty ("เนื้อหาประเภท", "multipart/form-data; boundary =" + ขอบเขต); output = conn.getOutputStream (); URL MediaUrl = URL ใหม่ (MediaPath); if (mediaUrl! = null) {httpurlConnection mediaConn = (httpurlconnection) mediaurl.openconnection (); MediaConn.SetDoOutput (จริง); MediaConn.SetUsecaches (เท็จ); MediaConn.SetRequestMethod (SystemConfig.get_Method); MediaConn.SetConnectTimeOut (conntime == 0? default_conntime: conntime); MediaConn.SetReadTimeOut (readtime == 0? default_upload_readtime: readtime); ioutils.write (("-" + ขอบเขต + "/r/n"). getBytes (), เอาต์พุต); ioutils.write (("เนื้อหา-การจัดสรร: form-data; name =/" media/"; filename =/" " + getFilename (MediaPath) +"/"/r/n"). getBytes (), เอาท์พุท); ioutils.write ("เนื้อหาประเภท: วิดีโอ/mp4/r/n/r/n" .getBytes (), เอาต์พุต); inputStream = ใหม่ bufferedInputStream (mediaConn.getInputStream ()); ioutils.copy (inputstream, output); // การสิ้นสุดส่วน ioutils.write (("-" + ขอบเขต + "/r/n").getBytes(SystemConfig.default_character_encoding), เอาต์พุต); ioutils.write ("เนื้อหา-การจัดสรร: form-data; name =/" คำอธิบาย/";/r/n/r/n" .getBytes (SystemConfig.default_character_encoding), เอาต์พุต); ioutils.write (("{/" title/":/" " + title +"/",/" บทนำ/":/" " + บทนำ +"/"}") .getBytes (SystemConfig.default_character_encoding) ioutils.write (("/r/n--" + ขอบเขต + "-/r/n/r/n"). getBytes (SystemConfig.default_character_encoding), เอาต์พุต); MediaConn.Disconnect (); // รับอินพุตสตรีมผลลัพธ์ผลลัพธ์ = inputStreamToString (conn.getInputStream ()); }} catch (malformedurlexception e) {e.printstacktrace (); } catch (protocolexception e) {e.printstacktrace (); } catch (ioexception e) {โยน iOexception ใหม่ ("อ่านข้อผิดพลาดข้อมูล"); } ในที่สุด {ioutils.closequietly (เอาท์พุท); ioutils.closequietly (inputstream); } ผลตอบแทนผลลัพธ์; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น