从okhttp3.ResponseBody获取url的方法是通过ResponseBody的source()方法获取BufferedSource对象,然后使用BufferedSource的readUtf8Line()方法读取响应体的第一行数据,该行数据即为URL。
以下是示例代码:
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okio.BufferedSource;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://www.example.com")
.build();
try {
Response response = client.newCall(request).execute();
ResponseBody responseBody = response.body();
if (responseBody != null) {
BufferedSource source = responseBody.source();
String firstLine = source.readUtf8Line();
// 提取URL
String url = extractUrlFromFirstLine(firstLine);
System.out.println("URL: " + url);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static String extractUrlFromFirstLine(String firstLine) {
// 在第一行数据中提取URL
// 这里的提取方式可能因具体响应格式而有所不同
// 示例中假设第一行数据为 "HTTP/1.1 200 OK"
// 实际应根据具体情况进行解析
String[] parts = firstLine.split(" ");
if (parts.length >= 2) {
return parts[1];
} else {
return "";
}
}
}
请注意,这只是一个示例代码,实际应用中需要根据具体的响应格式进行解析,以提取正确的URL。
云+社区技术沙龙[第10期]
云+社区技术沙龙[第21期]
云+社区沙龙online [技术应变力]
腾讯位置服务技术沙龙
北极星训练营
高校公开课
高校公开课
停课不停学 腾讯教育在行动第二期
《民航智见》线上会议
领取专属 10元无门槛券
手把手带您无忧上云