public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { Gson gson = new Gson(); String string = response.body().string(); Log.d("TAG", "onResponse: "+string); try { JSONObject jsonObject = new JSONObject(string); int code = jsonObject.getInt("code"); if (code == 200) { JSONObject result = jsonObject.getJSONObject("result"); JSONArray list = result.getJSONArray("list"); handler.post(() -> onHttpListener.success(gson.fromJson(list.toString(), new TypeToken<List<FortuneResult>>() { }.getType()))); } else { handler.post(() -> onHttpListener.error(jsonObject.optString("msg", "数据错误"))); } } catch (JSONException e) { throw new RuntimeException(e); } }
时间: 2024-02-10 16:34:38 浏览: 119
这是一个使用OkHttp库进行网络请求的Java代码示例中的 onResponse 方法。在网络请求成功后,会回调此方法,使用 Gson 对数据进行解析和封装。
首先使用 Gson 创建一个对象,然后调用 response.body().string() 方法获取到返回的字符串数据。接着,使用 JSONObject 对字符串进行解析,获取到返回数据中的 code 值。如果 code 值为 200,则表示请求成功。此时,获取到 result 对象中的 list 数组,使用 Gson 将数组转换成指定类型的数据,并使用 onHttpListener.success 方法将数据传递给处理者。
如果 code 值不为 200,则表示请求失败。此时,使用 onHttpListener.error 方法将错误信息传递给处理者。其中,jsonObject.optString("msg", "数据错误") 方法可以获取到错误信息的本地化描述。在解析过程中,如果发生 JSONException 异常,则将其封装成 RuntimeException 并抛出。
相关问题
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { Log.i("TAG","请求成功"); String res=response.body().string(); Log.i("TAG",res); Gson gson=new Gson(); Root root= gson.fromJson(res,Root.class); Result result= root.getResult();
这是一个 OkHttp 的请求回调方法,当请求成功时会被调用。在这个方法中,首先通过 Log 输出了一条请求成功的日志信息。然后获取了响应体的字符串内容并通过 Log 输出,以便调试。接着使用 Gson 将响应体的字符串内容解析成一个 Root 对象。Root 对象中包含了一个 Result 对象,通过获取该对象并赋值给 result 变量,可以进一步操作解析后的数据。
call.enqueue(new Callback() { @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { Log.i("TAG","请求失败"); } @SuppressLint("NotifyDataSetChanged") @Override public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { Log.i("TAG","请求成功");
这是一个使用OkHttp库进行网络请求的示例代码。其中,`Call`表示一次请求,`enqueue`方法是将请求加入到请求队列中,`Callback`是请求的回调接口,用于处理请求的响应结果。如果请求失败,会执行`onFailure`方法,如果请求成功,则会执行`onResponse`方法。在这个示例代码中,当请求失败时,会输出"请求失败"日志;当请求成功时,会输出"请求成功"日志。同时,在`onResponse`方法中,我们可以通过`response`参数得到请求的响应结果,并进行相应的处理。
阅读全文