本文主要是介绍Android 使用NanoHTTPD 架设 Http Server + 客户端App 发送请求示例(含上传图片示例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NanoHTTPD 简介
使用该 lib,可以在 Android 设备上,架设 Http Server。客户端(Client) App,请求 http://[serverIp]:[server端口]/… 访问服务。适用于,局域网内多安卓设备(一台作为服务器,其它作为客户端)间通信。
https://github.com/NanoHttpd/nanohttpd
依赖:implementation 'org.nanohttpd:nanohttpd:2.3.1'
Server 示例
import android.util.Log
import fi.iki.elonen.NanoHTTPDclass MyHTTPDServer(port: Int) : NanoHTTPD(port) {private var isTest = trueoverride fun serve(session: IHTTPSession): Response {return if (isTest) test(session)else NanoHTTPD.newFixedLengthResponse("msg")}private fun test(session: IHTTPSession): Response {var msg = "test"if (session.method == Method.GET) {if (session.uri.contains("testHtml")) {val map = decodeParameters(session.queryParameterString)val sb = StringBuilder()sb.append("method: GET").appendLine()map.forEach { k, u ->sb.append("key:$k, value:")u.forEach {sb.append("$it,")}sb.appendLine()}msg = sb.toString()Log.i("httpserver", "return msg: $msg")return NanoHTTPD.newFixedLengthResponse(msg)}} else if (session.method == Method.POST) {val map = mutableMapOf<String, String>()session.parseBody(map)session.parms?.forEach {Log.i("param", "serve: ${it.key} : ${it.value}")}if (session.uri.contains("beanData") && session.queryParameterString?.contains("imgData") == true) {Log.i("htt
这篇关于Android 使用NanoHTTPD 架设 Http Server + 客户端App 发送请求示例(含上传图片示例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!