public String getPageContentSync(String url) {
// 参数判断,未输入参数则直接返回
if (StringUtils.isBlank(url)) {
return null;
}
//2.定义一个request
Request request = new Request.Builder().url(url).build();
//3.使用client去请求
Call call = okHttpClient.newCall(request);
String result = null;
try {
//4.获得返回结果
result = call.execute().body().string();
} catch (IOException e) {
System.out.println("request " + url + " error . ");
e.printStackTrace();
}
return result;
}
这段代码是一个简单的方法,用于同步获取指定 URL 的页面内容。下面是这段代码的解释:
-
首先进行参数判断,如果传入的 URL 为空或者空白字符串,则直接返回 null。
-
创建一个 OkHttp 的 Request 对象,通过
Request.Builder().url(url).build()
方法构建,其中url
是传入的参数。 -
使用 OkHttp 的 OkHttpClient 发起网络请求,通过
okHttpClient.newCall(request)
创建一个 Call 对象。 -
通过调用
call.execute()
方法执行网络请求并获取响应,然后使用body().string()
方法将响应体转换为字符串。 -
如果在执行请求或者获取响应过程中发生了 IOException 异常,会打印错误信息,并将结果赋值为 null。
-
最后,返回获取到的页面内容字符串。
请注意,在使用这段代码之前,需要确保您已经正确导入了相关的库(例如 OkHttp 和 StringUtils)。另外,这段代码是同步的,意味着当执行网络请求时,当前线程会被阻塞,直到请求完成并且获取到响应。如果您希望实现异步的网络请求,可以使用 OkHttp 提供的异步请求方式(例如 enqueue(callback))来处理。