Luar biasa. Mungkin menghemat satu bulan kerja. Bisakah Anda menggunakannya dalam produk komersial?
Ivan G.
Anda harus membaca tentang lisensi BSD yang dimodifikasi. Jika memungkinkan menggunakan kode dalam produk komersial atau tidak.
damluar
2
Saya tidak bisa menampilkan gambar di halaman html saya. Direktori apa yang harus digunakan dalam html untuk menampilkan gambar? Terima kasih.
Shane Oliver
path ke gambar relatif mengatur ulang halaman html. itu bukan masalah server http, itu html buruk ..
damluar
Dapatkah saya melayani file yang sedang ditambahkan ke homeDir. Misalnya saya menyalin file bernama f1 di homeDir (menggunakan javacode). Sekarang penyalinan file sedang berlangsung dan jika seseorang mengirim permintaan untuk file f1 Dapatkah server memproses permintaan tersebut?
Ashwin N Bhanushali
23
NanoHttpd bekerja seperti pesona di Android - kami memiliki kode dalam produksi, di tangan pengguna, yang dibuat di atasnya.
Lisensi benar-benar memungkinkan penggunaan komersial NanoHttpd, tanpa implikasi "viral".
Di mana saya dapat menemukan tutorial / contoh cara menggunakannya? misalnya untuk melayani file yang terletak di perangkat, sehingga orang lain dapat mendownloadnya (atau streaming darinya)?
Pengembang android
9
Ini bisa dilakukan menggunakan ServerSocket , sama seperti di JavaSE. Kelas ini tersedia di Android. android.permission.INTERNETdiperlukan.
Satu-satunya bagian yang lebih rumit, Anda memerlukan utas terpisah menunggu di ServerSocket, melayani sub-soket yang berasal dari acceptmetodenya. Anda juga perlu menghentikan dan melanjutkan utas ini sesuai kebutuhan. Pendekatan paling sederhana tampaknya mematikan thread yang menunggu dengan menutup ServerSocket. Jika Anda hanya memerlukan server saat aktivitas Anda di atas, memulai dan menghentikan utas ServerSocket bisa dikaitkan dengan elegan ke metode siklus hidup aktivitas. Selain itu, jika server memiliki banyak pengguna, mungkin bagus untuk melayani permintaan di utas bercabang. Jika hanya ada satu pengguna, ini mungkin tidak diperlukan.
Jika Anda perlu memberi tahu pengguna di IP mana server mendengarkan, gunakan NetworkInterface .getNetworkInterfaces (), pertanyaan ini mungkin memberi tahu trik tambahan.
Terakhir, di sini mungkin ada server Android minimal lengkap yang sangat pendek, sederhana dan mungkin lebih mudah dipahami daripada aplikasi pengguna akhir yang sudah jadi, direkomendasikan dalam jawaban lain.
Ini gemuk menurut standar Android (100kb). Baik jika Anda menginginkan server yang serius di java daripada hanya menyajikan file sederhana atau antarmuka config / debug / status jarak jauh ke dalam aplikasi Anda.
Jawaban:
Pertimbangkan yang ini: https://github.com/NanoHttpd/nanohttpd . Sangat kecil, ditulis dalam bahasa Jawa. Saya menggunakannya tanpa masalah.
sumber
NanoHttpd bekerja seperti pesona di Android - kami memiliki kode dalam produksi, di tangan pengguna, yang dibuat di atasnya.
Lisensi benar-benar memungkinkan penggunaan komersial NanoHttpd, tanpa implikasi "viral".
sumber
Ini bisa dilakukan menggunakan ServerSocket , sama seperti di JavaSE. Kelas ini tersedia di Android.
android.permission.INTERNET
diperlukan.Satu-satunya bagian yang lebih rumit, Anda memerlukan utas terpisah menunggu di ServerSocket, melayani sub-soket yang berasal dari
accept
metodenya. Anda juga perlu menghentikan dan melanjutkan utas ini sesuai kebutuhan. Pendekatan paling sederhana tampaknya mematikan thread yang menunggu dengan menutup ServerSocket. Jika Anda hanya memerlukan server saat aktivitas Anda di atas, memulai dan menghentikan utas ServerSocket bisa dikaitkan dengan elegan ke metode siklus hidup aktivitas. Selain itu, jika server memiliki banyak pengguna, mungkin bagus untuk melayani permintaan di utas bercabang. Jika hanya ada satu pengguna, ini mungkin tidak diperlukan.Jika Anda perlu memberi tahu pengguna di IP mana server mendengarkan, gunakan NetworkInterface .getNetworkInterfaces (), pertanyaan ini mungkin memberi tahu trik tambahan.
Terakhir, di sini mungkin ada server Android minimal lengkap yang sangat pendek, sederhana dan mungkin lebih mudah dipahami daripada aplikasi pengguna akhir yang sudah jadi, direkomendasikan dalam jawaban lain.
sumber
Server lain yang bisa Anda coba http://tjws.sf.net , sebenarnya sudah menyediakan versi yang mendukung Android.
sumber
Anda dapat mencoba edisi Restlet untuk android:
Sumber dapat diunduh dari situs Restlet :
sumber
Jika Anda menggunakan kotlin, pertimbangkan pustaka ini. Itu dibangun untuk bahasa kotlin. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer sangat kecil, tetapi fiturnya juga kurang.
Ktor adalah perpustakaan yang sangat bagus, dan penggunaannya juga sederhana
sumber