ฉันต้องการสร้างเซิร์ฟเวอร์ HTTP อย่างง่ายใน Android เพื่อให้บริการเนื้อหาบางส่วนแก่ลูกค้า
มีคำแนะนำเกี่ยวกับวิธีสร้างเซิร์ฟเวอร์หรือใช้ไลบรารีที่มีอยู่หรือไม่?
ฉันต้องการสร้างเซิร์ฟเวอร์ HTTP อย่างง่ายใน Android เพื่อให้บริการเนื้อหาบางส่วนแก่ลูกค้า
มีคำแนะนำเกี่ยวกับวิธีสร้างเซิร์ฟเวอร์หรือใช้ไลบรารีที่มีอยู่หรือไม่?
คำตอบ:
พิจารณานี้: https://github.com/NanoHttpd/nanohttpd เล็กมากเขียนด้วยภาษาจาวา ฉันใช้มันโดยไม่มีปัญหาใด ๆ
NanoHttpd ทำงานได้อย่างมีเสน่ห์บน Android - เรามีโค้ดในการผลิตในมือของผู้ใช้ซึ่งสร้างขึ้นจากมัน
ใบอนุญาตนี้อนุญาตให้ใช้ NanoHttpd ในเชิงพาณิชย์ได้โดยไม่มีผลกระทบ "ไวรัส" ใด ๆ
ซึ่งสามารถทำได้โดยใช้ServerSocketเช่นเดียวกับบน JavaSE คลาสนี้พร้อมใช้งานบน Android android.permission.INTERNET
ต้องระบุ.
ส่วนที่ยุ่งยากมากขึ้นเท่านั้นคุณต้องรอเธรดแยกต่างหากบน ServerSocket ซึ่งให้บริการซ็อกเก็ตย่อยที่มาจากaccept
วิธีการ คุณต้องหยุดและเปิดใช้งานชุดข้อความนี้ต่อตามต้องการ วิธีที่ง่ายที่สุดดูเหมือนจะฆ่าเธรดที่รออยู่โดยการปิด ServerSocket หากคุณต้องการเซิร์ฟเวอร์ในขณะที่กิจกรรมของคุณอยู่ด้านบนการเริ่มต้นและการหยุดเธรด ServerSocket สามารถเชื่อมโยงกับวิธีวงจรชีวิตของกิจกรรมได้อย่างสวยงาม นอกจากนี้หากเซิร์ฟเวอร์มีผู้ใช้หลายคนอาจเป็นการดีที่จะร้องขอบริการในเธรดที่แยกออกมา หากมีผู้ใช้เพียงคนเดียวอาจไม่จำเป็น
หากคุณต้องการบอกผู้ใช้ว่า IP ใดที่เซิร์ฟเวอร์กำลังฟังอยู่ให้ใช้ NetworkInterface .getNetworkInterfaces () คำถามนี้อาจบอกเคล็ดลับเพิ่มเติม
ในที่สุดที่นี่อาจมีเซิร์ฟเวอร์ Android ขั้นต่ำที่สมบูรณ์ซึ่งสั้นมากเรียบง่ายและอาจเข้าใจง่ายกว่าแอปพลิเคชันสำหรับผู้ใช้ขั้นปลายที่แนะนำในคำตอบอื่น ๆ
เซิร์ฟเวอร์อื่นที่คุณสามารถลองใช้http://tjws.sf.netได้จริงๆแล้วมันมีเวอร์ชันที่เปิดใช้งาน Android อยู่แล้ว
คุณสามารถลองRestlet editionสำหรับ Android:
สามารถดาวน์โหลดแหล่งที่มาได้จากเว็บไซต์ Restlet :
หากคุณใช้ kotlin ให้พิจารณาไลบรารีเหล่านี้ มันสร้างขึ้นสำหรับภาษา kotlin https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer มีขนาดเล็กมาก แต่คุณลักษณะก็น้อยลงเช่นกัน
Ktor เป็นห้องสมุดที่ดีมากและการใช้งานก็ง่ายเช่นกัน