public static void sendOkHttpRequest(String address, okhttp3.Callback callback) { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(address) .build(); client.newCall(request).enqueue(callback); }
时间: 2023-06-26 12:05:18 浏览: 166
这是一个 Java 中使用 OkHttp 发送 HTTP 请求的方法。该方法接受两个参数:
1. address:请求的地址,可以是 URL 字符串或 HttpUrl 对象。
2. callback:请求的回调接口,用于处理服务器返回的响应数据。
在方法内部,我们首先创建一个 OkHttpClient 对象,它是 OkHttp 库中的核心类,用于发送请求和接收响应。然后,我们通过 Request.Builder 创建一个请求对象,设置请求的 URL,然后使用 build() 方法构建请求。最后,我们使用 OkHttpClient 的 newCall() 方法来执行请求,并将回调接口作为参数传入。
当服务器返回响应时,OkHttp 会在后台线程中调用回调接口的 onResponse() 方法,并将响应数据作为参数传入。如果发生错误,例如网络连接失败或服务器返回错误码,OkHttp 会调用回调接口的 onFailure() 方法,并将错误信息作为参数传入。
相关问题
public static Call request_post(String url, FormBody.Builder parms){ OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(base_url+url) .post(parms.build()) .build(); return client.newCall(request); } public static Call request_post(String url, String json){ OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(base_url+url) .post(RequestBody.create(MediaType.parse("application/json"),json)) .build(); return client.newCall(request); } public static Call request_get(String url){ OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(base_url+url) .get() .build(); return client.newCall(request); } }
这是一个使用OkHttp库封装了HTTP请求的Java代码。其中,`request_post`方法有两个重载,一个是使用表单数据进行POST请求的方法,另一个是使用JSON数据进行POST请求的方法。`request_get`方法则是使用GET请求。这些方法都会返回一个`Call`对象,可以使用它来执行HTTP请求。在这些方法中,首先需要创建一个`OkHttpClient`对象,它是一个网络请求的客户端,然后使用`Request.Builder`构建一个请求对象,设置请求的URL和请求方式(POST或GET),最后使用`client.newCall(request)`方法创建一个`Call`对象并返回。这些方法可以方便地封装HTTP请求,并且可以根据不同的需求选择不同的方法。
public void request(){ okhttp3.OkHttpClient client=new okhttp3.OkHttpClient(); // 构建请求 URL,其中包含搜索关键字 String url = "https://www.baidu.com/s?wd=" ; Request request = new Request.Builder() .url(url) .build(); // 发起 GET 请求,并获取响应数据 try (Response response = client.newCall(request).execute()) { String responseData = response.body().string(); // 解析响应数据,提取搜索结果等信息 // TODO: 解析响应数据的代码 } catch (IOException e) { e.printStackTrace(); } }
这段代码的作用是使用OkHttp库向百度搜索发送GET请求,并获取响应数据。其中,通过构建请求URL将搜索关键字传递给百度搜索,然后使用OkHttp库发送请求并获取响应数据。在获取到响应数据后,可以通过解析数据来提取搜索结果等信息。需要注意的是,这段代码中的解析响应数据的代码部分没有实现,需要自己根据需要进行编写。
阅读全文