java - 当我使用 jsoup 库请求 URL 时发生错误的响应代码
问题描述
我正在开发一个 WI-Fi 应用程序来连接热点网络。连接时,我想根据网络状态获取响应代码。假设,如果我的 SSID 名称类似于“MyHotspot”,我将其连接到我的手机中并检查它处于“需要身份验证/登录”状态的状态。在该状态下,我正在尝试使用 jsoup 解析器请求 URL。然后我得到了响应代码 302。这是正确的响应代码,但如果我的 SSID 处于“已连接”状态。那个时候它也显示响应代码302。这是错误的。
我想接收基于 SSID 状态的响应代码。如果 SSID 处于身份验证状态,响应将出现 302。如果 SSID 处于连接状态,响应将出现 200。这就是我想要的。
源代码 :
try{
URL url = new URL("http://microsenseindia.com");
Connection.Response response = Jsoup.connect(String.valueOf(url)).timeout(10000).followRedirects(false).execute();
//Connection.Response response = Jsoup.connect("http://microsenseindia.com").timeout(10000).execute();
Log.d(TAG, "check_if_internet_available : " + response.statusCode());
} catch(Exception e) {
Log.e(TAG, "Jsoup_Exception: "+e);
}
解决方案
首先代码 http 302
302(已找到)状态码表示目标资源暂时驻留在不同的 URI 下。由于有时可能会更改重定向,因此客户端应该继续使用有效的请求 URI 来处理未来的请求。
对于您的问题,也许此代码可以在不使用 URL 定义的情况下为您提供帮助:
try{
JsoupConnection.Response response = Jsoup.connect("http://microsenseindia.com")
.userAgent("Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like
Gecko) Chrome/19.0.1084.46 Safari/536.5")
.timeout(100000)
.ignoreHttpErrors(true)
.execute();
Log.d(TAG, "check_if_internet_available : " + response.statusCode());
}catch(Exception e){
Log.e(TAG, "Jsoup_Exception: "+e);
}
推荐阅读
- git - 我们什么时候需要在 git 中使用 --track 命令
- java - 将 QueryDSl 与 Spring Boot App 集成时出现空指针异常
- git - 如何隔离git子模块的日志
- android - 同一个TextView中的多个id
- java - 基于单链表的FIFO队列结构
- powershell - 阵列不擦除
- spring-boot - 使用 crnk JSON API 实现 JSR-303 验证
- ssh - Bitvise ssh 在配置文件中存储加密密码
- git - Jenkinsfile:稀疏结帐在工作目录上没有条目
- java - Spring:没有@Component的@Autowired