安卓http服务器_安卓 http服务器 - CSDN
精华内容
参与话题
  • android搭建http服务

    千次阅读 2018-05-17 17:56:37
    是一个Android平台的WebServer服务器和WebServer开发框架 http://www.yanzhenjie.com/AndServer 通过上面地址查看说明 NanoHttpd 一个轻量级的http服务,详情请参考 https://github.com/NanoHttpd/nanohttpd ...

    AndServer
    是一个Android平台的WebServer服务器和WebServer开发框架
    http://www.yanzhenjie.com/AndServer
    通过上面地址查看说明

    NanoHttpd
    一个轻量级的http服务,详情请参考
    https://github.com/NanoHttpd/nanohttpd
    需要jar包,使用的时候呀有一个simplewebservice可以直接开启服务

    展开全文
  • Android 如何在Android项目中搭建HTTP服务器 前言 顾客在无人售货机前购买商品,需要把选购的商品信息上传给Android应用并显示在屏幕上,通信协议为Http协议,无人售货机将作为客户端,Android应用作为服务端...
    前言

    顾客在无人售货机前购买商品,需要把选购的商品信息上传给Android应用并显示在屏幕上,通信协议为Http协议,无人售货机将作为客户端,Android应用作为服务端,通过http协议,将商品信息上传给Android应用并显示,在这样的场景下,就需要再Android应用程序中搭建一个Http服务器,在Android应用程序中搭建服务器不比java后台那样,那么有什么好的方式可以实现这样的应用场景呢?现在是开源的世界,什么样的需求和功能,都能够很容易找到解决方案,我们可以通过一个开源的服务器框架来实现,它就是NanoHTTPD,NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小,如果要使用它的话,需要在官网下载源码,把相应的源码拷贝到自己的项目中,并继承相应的类。

    开始在Android项目中搭建Http服务器

    1、首先需要下载NanoHTTPD的源码,官网的源码下载下来到放到项目中使用可能比较麻烦,为了方便,我这里提供一个我自己在使用的源码,源码地址:
    https://pan.baidu.com/s/1BrDCA66jajI8CWJroSikpw

    2、源码下载下来以后,将其拷贝在自己的项目中,下图是我拷贝到项目中的目录结构,仅供参考:
    目录结构

    3、拷贝到自己项目中以后,创建一个新类,并继承NanoHTTPD类,重写serve()方法,注意构造函数不能少,在创建对象时,需要把端口传给父类。

    public class Http extends NanoHTTPD {
    
        private static final String TAG = "Http";
        public Http(int port) {
            super(port);
        }
    
        @Override
        public Response serve(IHTTPSession session) {
    
            try {
                // 这一句话必须要写,否则在获取数据时,获取不到数据
                session.parseBody(new HashMap<String, String>());
            } catch (IOException e) {
                e.printStackTrace();
            } catch (ResponseException e) {
                e.printStackTrace();
            }
    
            StringBuilder builder = new StringBuilder();
            Method method = session.getMethod();
            String uri = session.getUri();
            Map<String, String> parms = session.getParms();
            String data = parms.get("data");//这里的data是POST提交表单时key
            Log.i(TAG, "uri: "+uri);//如果有uri,会打印出uri
            Log.i(TAG, "data: "+data);
            builder.append("任意内容");// 反馈给调用者的数据
            return newFixedLengthResponse(builder.toString());
        }

    4、在项目中新建一个Android服务,在该服务的onStartCommand()方法中创建刚才新建好的Http对象并调用它的方法start()方法开启http服务,端口可任意指定(0~65535之间都可以)。

    public class MyServer extends Service {
        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            // 创建对象,端口我这里设置为8080
            HttpService myServer = new HttpService(8080);
            try {
                // 开启HTTP服务
                myServer.start();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return super.onStartCommand(intent, flags, startId);
        }
    }

    5、启动项目,通过http请求工具进行测试,前提是项目所在的设备需要连接网络,测试地址是设备上的IP地址加上端口,最后可以看到Android项目服务器接收到了数据。

    展开全文
  • Android手机上搭建一个http服务器

    千次阅读 2019-04-28 00:48:50
    看到标题是不是有点懵,在Android手机上搭建一个http服务器??? 你TM在逗我 没错,我们就是要在Android手机上搭建一个http服务器。提到http服务器一般第一反应是Apache,nginx Android上也能运行Apache,...

    看到标题是不是有点懵,在Android手机上搭建一个http服务器???

    img_e7501a741fe007f3f3689c63a865cd15.jpe
    你TM在逗我

    没错,我们就是要在Android手机上搭建一个http服务器。提到http服务器一般第一反应是Apache,nginx
    Android上也能运行Apache,nginx了???
    Android手机上当然不能运行这些服务器了,这次在Android上运行的是用Golang写的一个简单的http服务器。因为Golang可以跨平台编译,我尝试着把系统选择成Linux,CPU架构选择arm,然后在手机上运行,然后Android手机上真的运行起了一个http服务器
    img_56ba972ed91583155ecda7ac5beb7a31.jpe
    惊喜

    回到正题,要想开发编写golang,首先要配置好golang的开发环境,golang的配置传送门
    我是在Ubuntu下开发的,新建service.go文件

      1 package main
      2 
      3 import (
      4         "net/http"
      5        )
      6 
      7 func main() {
      9     http.HandleFunc("/",myResponse)
     10     http.ListenAndServe("127.0.0.1:8888",nil)
     11 }
     12 
     13 func myResponse(w http.ResponseWriter,r* http.Request)  {
     14     w.Write([]byte("<html><center> <font size=\"40\">hello I am go service</font></center></html>"))
     15 }
    

    不熟悉go的同学注意下,不要随意回车换行 不要随意回车换行 不要随意回车换行 因为go有点像Python,不是用 “;” 结束的
    简单解释一下
    http.HandleFunc("/",myResponse)第一个参数是注册http服务的URL,这里我们填写"/",在访问的时候直接localhost:8888 就行了,如果填"/test"访问的时候URL为localhost/test:8888"
    http.ListenAndServe("127.0.0.1:8888",nil)第一个参数是要监听的ip和端口,第二个填nil就好了
    然后编译运行试试,在本机上运行的程序用默认的编译参数就行go build service.go
    然后运行./service
    在浏览器中输入URL,成功访问到

    img_75ba2fc518ba86780c17fdb2b069454b.png
    chrome

    下一步我们把这个程序移植到Android上,Android手机必须要有root权限,手机没有root,而又不想root的同学可以用模拟器,只要CPU的指令集参数改一下就行,先在手机上运行一下,我的手机是荣耀6,CPU是海思920,百度到海思920的指令集是arm32的,好的,编译一个
    在编译之前我们先修改一下刚才编译的程序的名
    执行GOOS="linux" GOARCH="arm" go build service.go
    得到一个可执行文件,用file命令看一下file service

    service: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
    

    我们看到这个文件是一个32位的arm程序。ok,复制的Android手机上试试
    需要用到的软件

    img_3af8cdd6a62370b13e69c52159f91a41.png
    Screenshot_2018-04-08-19-17-19.png

    “juiceSSH”是用来模拟Linux的shell命令的,“RE文件管理器”用来修改文件的权限,在Android上chmod命令不起作用。
    先复制到根目录
    然后修改文件的权限
    img_f9009e56285bb1e954617851c19b9b8a.png
    Screenshot_2018-04-08-19-18-11.png

    img_1150a0f11f6be06250d8620262609897.png
    Screenshot_2018-04-08-19-18-20.png

    然后在juiceSSH里运行,然后去浏览器输入URL看看,
    img_71a37ba42f09242f3e6a97b721395bef.png
    Screenshot_2018-04-08-19-19-43.png

    没问题
    接下来编译一个模拟器上的,我用的genymotion,运行的是Google nexus5手机系统,我百度了一下,nexus5用的是高通骁龙800CPU,然后坑来了,骁龙800是arm32的指令集,按理说直接把那个程序复制进去就可以运行了,但是提示/system/bin/sh: ./service_arm32: not executable: 32-bit ELF file
    后来想了想CPU用的是电脑上的,那编译成X64的试试。还是不行,换成X86的试试。终于成功了。原来是指令要用电脑CPU的,多少位需要模拟器的。
    执行GOOS="linux" GOARCH="386" go build service.go
    复制到模拟器中,然后跟在手机一样,复制到根目录,添加权限。然后用adb shell运行,然后在模拟器的浏览器中发现可以访问
    img_3d7ee586cb32ae400d9111c36003e04f.png
    genymotion

    好了,我们已经在Android上运行一个http服务器了,是不是比较简单

    展开全文
  • 看到标题是不是有点懵,在Android手机难道可以搭建http服务器? 没错,我们就是要在Android手机上搭建一个http服务器。提到http服务器一般第一反应是Apache,nginx 但是我们并不运行Apache,nginx 这次在Android上...
       看到标题是不是有点懵,在Android手机难道可以搭建http服务器?
       没错,我们就是要在Android手机上搭建一个http服务器。提到http服务器一般第一反应是Apache,nginx
    

    但是我们并不运行Apache,nginx
    这次在Android上运行的是用Golang写的一个简单的http服务器。因为Golang可以跨平台编译,我尝试着把系统选择成Linux,CPU架构选择arm,然后在手机上运行,然后Android手机上还真运行起了一个http服务器😆
    回到正题,要想开发编写golang,首先要配置好golang的开发环境点击查看,golang的配置
    我是在Ubuntu下开发的,新建service.go文件

    package main
      
      import (
              "net/http"
              )
       
       func main() {
           http.HandleFunc("/",myResponse)
          http.ListenAndServe("127.0.0.1:8888",nil)
      }
      
      func myResponse(w http.ResponseWriter,r* http.Request)  {
          w.Write([]byte("<html><center> <font size=\"40\">hello I am go service</font></center></html>"))
      }
    

    **解释一下
    http.HandleFunc("/",myResponse)第一个参数是注册http服务的URL,这里我们填写"/",在访问的时候直接localhost:8888 就行了,如果填"/test"访问的时候URL为localhost/test:8888"
    http.ListenAndServe(“127.0.0.1:8888”,nil)第一个参数是要监听的ip和端口,第二个填nil就好了
    然后编译运行试试,在本机上运行的程序用默认的编译参数就行go build service.go
    然后运行./service
    下一步我们把这个程序移植到Android上,Android手机必须要有root权限,手机没有root,而又不想root的同学可以用模拟器,只要CPU的指令集参数改一下就行,先在手机上运行一下,我的手机是荣耀6,CPU是海思920,百度到海思920的指令集是arm32的,好的,编译一个
    在编译之前我们先修改一下刚才编译的程序的名
    执行GOOS=“linux” GOARCH=“arm” go build service.go
    得到一个可执行文件,用file命令看一下file service

    service: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
    
    

    我们看到这个文件是一个32位的arm程序。复制的Android手机上试试
    我们需要用的juicessh和re文件管理器
    “juiceSSH”是用来模拟Linux的shell命令的,“RE文件管理器”用来修改文件的权限,在Android上chmod命令不起作用。
    先复制到根目录
    然后修改文件的权限然后在juiceSSH里运行,然后去浏览器输入URL看看,接下来编译一个模拟器上的,我用的genymotion,运行的是Google nexus5手机系统,我百度了一下,nexus5用的是高通骁龙800CPU,然后坑来了,骁龙800是arm32的指令集,按理说直接把那个程序复制进去就可以运行了,但是提示/system/bin/sh: ./service_arm32: not executable: 32-bit ELF file
    后来想了想CPU用的是电脑上的,那编译成X64的试试。还是不行,换成X86的试试。终于成功了。原来是指令要用电脑CPU的,多少位需要模拟器的。
    执行GOOS=“linux” GOARCH=“386” go build service.go
    复制到模拟器中,然后跟在手机一样,复制到根目录,添加权限。然后用adb shell运行,然后在模拟器的浏览器中发现可以访问
    我们已经在Android上运行一个http服务器了,是不是比较简单

    展开全文
  • 安卓搭建http服务器——NanoHttpd

    千次阅读 2016-02-19 15:38:51
    个类让我对http、socket、server都有了新的认知。 1、nanohttpd 轻量的httpservernanohttpd 开源地址 https://github.com/NanoHttpd/nanohttpd 2、nanohttpd中HttpServer由于我只用到了nanohtt
  • Android下最好用的开源HTTP 服务器

    千次阅读 2014-02-13 11:36:45
    Android下最好用的开源HTTP 服务器 Published by 荒野无灯 on 2012-08-01 00:00:00 under软件/酷软分享 Tags: http 10815 views 在试用过 Android Webserver (com.bolutions.webserver) kWS (Android Web ...
  • 我们知道,Android是通过连接指定的ntpServer来获取网络时间,而不同的服务器带来的延迟也不尽相同,通常情况下,我们自然是期望尽快获取时间,那么我们就需要对ntpServer有一定的筛选,尤其是在选择默认的ntpServer...
  • 快速搭建Android应用后台服务器

    万次阅读 2018-05-14 15:49:52
    一直没单独一个人搭建过后台,之前都是用的云服务后台,跟着帖子一步...1.自己动手——快速搭建Android应用服务器 - CSDN博客 https://blog.csdn.net/Mr_Megamind/article/details/71404618 通过这个你可以实现数...
  • 安卓上部署服务器安卓上部署服务器 - 应用程序的配置在安卓上部署服务器 - 解决内网穿透问题在安卓上部署服务器 - 部署脚本和博客   上篇文章讲了总体情况和相关应用的配置,这篇文章解决内网穿透问题。 我需要...
  • Android开发者如何搭建服务器

    万次阅读 多人点赞 2019-01-29 23:04:23
    Android 开发者有时也可以通过开发javaweb项目写接口然后供APP 调用,这时候你就需要一个服务器去发布接口项目,那么Android 开发者如何搭建自己的服务器?首先你需要选择一个服务器提供商,现在市面上有很多云端...
  • Android服务器——TomCat服务器的搭建

    万次阅读 多人点赞 2016-05-03 09:36:37
    Android服务器——TomCat服务器的搭建 作为一个开发人员,当然是需要自己调试一些程序的,这个时候本地的服务器就十分方便了,一般都会使用TomCat或者IIS服务器,IIS就比较简单了,其实tomcat也是很简单的,接下来...
  • Android4.2.2 支持samba服务

    千次阅读 2014-07-16 12:46:21
    Android设备支持samba服务,需要支持一下几点:  1. 内核中需要配置支持samba服务,配置如下:  #make menuconfig Next
  • 1.使用到的开发工具为:Eclipse(Java EE),Android Studio,MYSQL 5.7.21; 2.首先在MYSQL数据库建表,我这里使用的数据库可视化操作软件为:navicat premium: 如图: 这里你可以取自己喜欢的数据库名字,...
  • Android模拟器上网设置方法
  • Android时间与服务器同步方法

    万次阅读 2017-04-24 23:23:20
    Android时间与服务器同步方案 在部分软件应用场景里,我们对应用时间要求非常苛刻,如活动、商品秒杀倒计时操作,防止用户修改本机时间,导致应用错乱。 我们如果能让本地应用时间与服务器时间在误差应许范围内,...
  • Android设备设置代理的两种方法

    万次阅读 2020-06-04 10:53:34
    本文将介绍两种给给android设备设置网络代理的方法,一种是直接在网络设置中操作,另一种是通过adb指令操作 第一种最常用的通过设置页面操作(此处以夜神模拟器为例讲解,其他设备操作方式基本类似) 操作路径:...
  • 概要安卓APP要实现很多功能(比如登录注册、发表评论等)时都必须要使用到网络数据交互。所以在学习了这部分内容后,就将...博客分一二两篇,第一篇是服务器端,第二篇是Android客户端 而服务器端分为User model、Use
  • 搭建服务器首先要创建一个web项目,因为我的开发工具JAVA EE-Eclipse,既可以搭建安卓项目,又可以搭建web项目,所以就直接使用了。如果没有Tomcat的话,可以在eclipse里面设置一下。下面制作一张动态图,是设置...
  • 我用httpurlconnection传就可以,用httppost就不行了。。。 httpurlconnection = (HttpURLConnection) url.openConnection(); httpurlconnection.setDoOutput(true); httpurlconnection.setRequestMethod("POST"); ...
  • 应用如何在手机上访问本地电脑上的tomcat服务器,设置"localhost"或者"127.0.0.1"是不行的,在模拟器上将 ip设置为"10.0.2.2"(也可以设置为本地服务器的IP地址如本机:http://192.168.1.102)是可以访问的,但到...
1 2 3 4 5 ... 20
收藏数 159,389
精华内容 63,755
关键字:

安卓http服务器