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