okHttp实例判断一下网址打不开的方法

102

主题

190

回帖

983

积分

管理员

积分
983
// 创建 okHttp 实例
var http = new okHttp();
http.setHeader("User-Agent", "Mozilla/5.0");
var url = "http://www.baidu.com/";

try {
printl("开始发送 GET 请求到: " + url);
var result = http.get(url);
printl("请求完成,响应对象: " + JSON.stringify(result)); // 打印完整的响应对象

if (result && result.code !== undefined) {
printl("请求成功,状态码: " + result.code);
if (result.body !== undefined) {
printl("响应内容: " + result.body.substring(0, 100) + "...");
} else {
printl("响应内容为空");
}
} else {
printl("请求失败,响应对象异常: " + JSON.stringify(result));
}
} catch (e) {
printl("请求失败: " + e.message);
if (e.errorDescription) {
printl("错误描述: " + e.errorDescription);
}
}

. 创建HTTP客户端实例

var http = new okHttp();
http.setHeader("User-Agent", "Mozilla/5.0");


  • new okHttp()
    创建一个HTTP客户端对象,用于发送网络请求(类似浏览器)。
  • setHeader("User-Agent", "Mozilla/5.0")
    设置请求头,模拟浏览器访问(避免被服务器拒绝)。

2. 定义请求URL

var url = "http://www.baidu.com/";


  • 目标地址是百度首页(可替换为任何HTTP/HTTPS URL)。

3. 发送GET请求(核心逻辑)

try {
    printl("开始发送 GET 请求到: " + url);
    var result = http.get(url);


  • try-catch
    捕获请求过程中可能出现的异常(如网络错误、超时等)。
  • http.get(url)
    发送GET请求,返回结果存储在 result 变量中。

4. 打印完整响应对象

printl("请求完成,响应对象: " + JSON.stringify(result));


  • JSON.stringify(result)
    将响应对象转为字符串,方便打印日志(调试用)。

5. 检查响应状态

if (result && result.code !== undefined) {
        printl("请求成功,状态码: " + result.code);


  • result.code
    假设响应对象包含 code 字段(HTTP状态码,如200表示成功)。
  • 如果状态码存在,认为请求成功。

6. 处理响应内容

if (result.body !== undefined) {
            printl("响应内容: " + result.body.substring(0, 100) + "...");
        } else {
            printl("响应内容为空");
        }


  • result.body
    假设响应对象包含 body 字段(服务器返回的HTML/JSON数据)。
  • substring(0, 100)
    只打印前100字符(避免日志过长)。

7. 处理异常响应

} else {
        printl("请求失败,响应对象异常: " + JSON.stringify(result));
    }


  • 如果 result 为空或没有 code 字段,认为请求失败。

8. 捕获并打印错误

} catch (e) {
    printl("请求失败: " + e.message);
    if (e.errorDescription) {
        printl("错误描述: " + e.errorDescription);
    }
}


  • e.message
    打印错误基本信息(如超时、DNS解析失败)。
  • e.errorDescription
    打印额外错误详情(如果有)。

关键点总结

  1. 流程顺序
    创建客户端 → 设置请求头 → 发送请求 → 检查响应 → 处理结果/错误。
  2. 假设条件
    • okHttp 返回的对象格式为 { code: 200, body: "..." }
    • 如果响应不符合此格式,会进入 else 分支("响应对象异常")。
  1. 常见错误
    • DNS解析失败:域名无法访问(如拼写错误)。
    • 空响应:服务器未返回数据或网络中断。
    • 状态码异常:如404(页面不存在)、500(服务器错误)。
2.png

举报 回复