问题标签 [nanohttpd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1633 浏览

java - NanoHTTPD 不显示其他页面

我正在使用 NanoHTTPD 从 Android 本地托管网页。

我的问题是服务器响应我网站的索引页面,但我不知道如何导航到过去的任何页面,因为它总是会响应索引页面。

任何人都有任何教程,我正在努力寻找任何东西。谢谢 :)

0 投票
0 回答
810 浏览

jquery - 对本地 libcs​​oap/nanohttpd 服务器的 jquery/soap 请求-> Access-Control-Allow-Origin 不允许 Origin *

我写了一个 c 程序,它需要一个接口来连接其他程序,也需要一个 webste。所以我只是选择了libcs​​oap来创建一个soap接口。libcs​​oap 库基于 nanohttpd,这是一个用 c 编写的小型 http 服务器。

我刚刚实现了一些测试函数,例如一个ping只返回一个没有任何有趣数据的 xml 的函数。

我可以在 libcs​​oap 的帮助下毫无问题地调用这些函数。但是现在,我尝试从一个虚拟网站调用肥皂接口。我刚刚创建了一个带有 textarea 和一个按钮的 html 文件,以将 textarea 的内容作为原始 xml 发送。

然后我尝试将答案放入- 按钮div旁边send。此 html 文件位于我的本地计算机xubuntu-02上的 apache2 网络服务器上。

这是代码:

我使用铬来调试代码。可以观察所有http请求,我总是得到http状态200作为答案。所以......请求应该是完整的?如果我检查服务器端的日志(libcs​​oap-log),我还可以看到 xml 已处理,创建了一个新的 xml 并发送了新的 xml。

我还用wireshark检查了请求,似乎没问题:

所以,一切看起来都不错,但在 javascript 控制台中的 chromium 中,我总是得到XMLHttpRequest cannot load http://xubuntu-02:10000/tbs_blabla. Origin http://xubuntu-02 is not allowed by Access-Control-Allow-Origin..

我总是发送一个请求,但网页上什么也没发生。

我不知道为什么。我测试了很多东西。chromium-browser --disable-web-security例如,以或开始铬chromium-browser --allow-file-access-from-files

我检查了许多stackoverflow-posts:

错误:使用 JQuery 的 ajax 方法加载 XML 文件时,“Access-Control-Allow-Origin 不允许 Origin null”

XmlHttpRequest 错误:Access-Control-Allow-Origin 不允许 Origin null

Access-Control-Allow-Origin 不允许 Origin null

$.ajax(): Origin null 是不允许的

将 jQuery Post 发送到 Google API 的 Access-Control-Allow-Origin 错误

...

也许有人可以看到我做错了什么?

感谢您的帮助。

此致

- 编辑 -

我只是在 php 中写了一个小“代理”。它只是接收 xml 并将其发送到 localhost:10000,然后返回 xml-answer。现在我使用 xml 的后字段数据。

这是php文件:

现在它适用于这个小技巧。

谢谢

此致

0 投票
1 回答
1151 浏览

java - Java HTTP 服务器和资源

我正在使用 NanoHTTPd 从我的 android 应用程序中提供文件。我可以很好地打开 .html 文件,但它正在尝试查看问题所在的图像。不会显示网页背景图像之类的任何内容。

有没有人有任何示例代码。我知道 nanoHTTPd 可以做到这一点。我在 Android 和 Java 方面有很多经验,但这是我第一次使用服务器。

编辑:

在浏览器中打开图像只会返回大量文本符号(...��k�OOO�...)。我是否以错误的方式解析图像?

使固定:

就像古斯塔夫说的那样,我没有使用正确的模因类型,但我也没有返回 serveFile(.....) 例如....

0 投票
2 回答
995 浏览

android - httpserver 应该作为 Android 服务运行还是作为 Android 应用程序运行?

我有一个 Android 服务,它在启动时启动一个管理 Android 应用程序。请注意,我无法取消该应用程序,因为我需要它来进行管理员交互。

Android Service + 应用程序是通过 LAN 连接为大约 10 个 Android 客户端提供服务。我计划使用nanohttpd(一个非常轻量级的 http 服务器)作为 http 服务器与客户端进行通信。现在,问题是,我应该在服务器的服务部分还是应用程序部分实现 nanohttpd?最好的方法是什么?

0 投票
2 回答
2175 浏览

java - 文件上传错误 nanohttpd

我使用下面的代码使用 NanoHTTPD 上传文件,但没有上传任何内容,也没有给我临时路径。

代码是:

我成功获取上传页面,点击上传按钮后,我的网址也变为

但是没有任何东西上传到我的手机。

你能帮助我吗?

0 投票
1 回答
837 浏览

java - InputStream 包含多个文件

我尝试将多个文件从我的服务器(NanoHttpd)发送到我的客户端(Apache DefaultHttpClient)。我的方法是通过 NanoHttpd 的一个响应发送多个文件。
我只能在响应中发送一个 InputStream,据我所知,我只能将一个响应用于请求。

我已经用 SequenceInputStream 试过了,但这会将所有文件合并在一起。
有没有办法在一个 InputStream 中发送多个文件而不合并它们,所以我可以单独访问它们?

提前致谢。

0 投票
4 回答
16664 浏览

android - 如何在 android 中创建 nanohttpd 服务器?

实际上,我已经搜索了一些问题并去了 github。但我是新手,我看不懂这个例子。

我想在 android 中创建 http 服务器,以便可以在 PC 浏览器中访问它。

我有一个类扩展 nanohttpd 的实例,但服务器无法正常工作。我不知道为什么,我的电脑和手机在同一个WIFI,呃......

0 投票
2 回答
456 浏览

android - android,在 NanoHTTPD 项目中强制关闭

我正在使用 NanoHTTPD 实现自定义 Web 服务器。我有扩展 NanoHTTPD 的 BaseServer 类:

}

以及通过此代码使用此类的活动:

我的服务器正常启动,但是当我从浏览器发送请求时,我的应用程序强制关闭!

当下面的代码被执行时(它在 try 块中),指针转到最后一个块!!!(不缓存)我向我的手机发送强制关闭!

f 为空(未发送文件!),这段代码应该处理这种情况!,不是吗?!

0 投票
1 回答
13458 浏览

java - 为什么 RMI 注册表忽略 java.rmi.server.codebase 属性

我正在运行 java RMI 的 Hello World 示例

1)我在一个空文件夹中运行注册表

2) 我启动 HTTP 服务器以在运行时检索类。下载文件夹包含客户端-服务器的远程接口

3)我启动服务器传递 java.rmi.server.codebase 属性,如 java RMI 教程中所建议的那样

RMI 注册表没有联系 HTTP 服务器并且正在引发异常(请参阅问题后的详细​​信息)。 但是,如果我执行以下操作

1) 使用 java.rmi.server.codebase 属性启动 rmi 注册表

2)像以前一样启动HTTP服务器

3)不带任何选项启动服务器

它有效,但为什么呢?似乎在第一个过程中,RMI 注册表忽略了 java.rmi.server.codebase 属性

谢谢

==================================

我在跑步

RMI 注册表的异常

0 投票
3 回答
11574 浏览

android - 如何更改端口80 android

我在我的 android 设备上创建了一个网络服务器(使用 Nanohttpd)。它在端口 8080 上工作正常,但我想让它在端口 80 上正常工作,(我想在我的浏览器上录制:http://192.168.xx而不是http://192.168.xx:8080/)但我我做不到

这就是我调用创建网络服务器的方法的方式:

  • 有人可以告诉我默认情况下在端口 80 上运行什么服务吗?
  • 我该如何解决这个问题?