当前位置:   article > 正文

Android 使用NanoHTTPD 架设 Http Server + 客户端App 发送请求示例(含上传图片示例)

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.NanoHTTPD

class MyHTTPDServer(port: Int) : NanoHTTPD(port) {
   

    private var isTest = true

    override 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/184607
推荐阅读
相关标签
  

闽ICP备14008679号