android - 仅通过WiFi接口(interface)发送POST请求

标签 android http httpurlconnection android-wifi

我有一个带有 WiFi 模块的芯片,它充当接入点。我想做的是连接到 AP(无法访问互联网),向本地地址( http://192.168.4.1/address )发送 POST 请求并接收来自芯片的响应。我正在编写一个 Android 应用程序,它应该可以做到这一点(而且大多数时候都是如此)。

问题是,我有一个测试设备,它具有此优化功能并检查您连接的 WiFi 网络是否可以访问互联网,如果没有,它会自动使用移动数据。我不希望这样,所以我想“强制”应用程序通过 WiFi 接口(interface)发送它或找到解决方法。

我目前使用 HttpURLConnection,如果我关闭移动数据,它就会发挥作用。否则它只是等待并在最后触发超时。

我已经搜索了很多关于这个问题的信息,但到目前为止我什么也没找到。

最佳答案

自 Android 5 (API 21) 起,您可以强制连接使用 WiFi,即使它不是默认网络。

一种解决方案是找到相应的网络,例如使用 ConnectivityManager.getAllNetworks()ConnectivityManager.getNetworkInfo() :

一旦您拥有Network ,您可以:

参见Connecting your App to a Wi-Fi Device (尤其是路由网络请求)了解更多详细信息。

关于android - 仅通过WiFi接口(interface)发送POST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54251538/

相关文章:

android - 面板 'slides open' - 使用计时器改变高度

api - 如何在 flutter 中向 API 服务器发送请求 POST 消息?

java - HttpURLConnection GET 请求得到 400 Bad Request

java - HTTPURLConnection Java header 中的 UTF-8 字符

java - 从谷歌获取输入流时连接被拒绝

java - Android/Java WiFi 直接对端列表

java - Android 工具栏不显示图标和标题

Android - 可移动/可拖动的 float 操作按钮 (FAB)

python - 将按钮链接到 Flask-Appbuilder 中的页面

java - 如何使用volley库发送字符串?