okhttp网络同步请求,线程同步执行

在地图轨迹回访功能开发中,遇到按时间段获取经纬度并显示的需求。由于接口限制,每次请求不能超过24小时,因此需要多次调用接口并在同一线程中合并数据。通过在方法前添加`synchronized`关键字实现线程同步,确保数据正确添加到数组。请注意在实际执行时需在新线程中进行同步操作。
摘要由CSDN通过智能技术生成

在做地图轨迹回访的时候有这样一个需求,根据时间段获取经纬度信息,然后把经纬度数据添加到数组,在地图上展示出来。接口查询的时候开始时间和结束时间是不予许超过24小时的,所以当选择完时间之后就需要截取时间段,多次执行请求接口,然后把请求到的数据添加到数组,这就需要执行的时候线程和网络请求同步,围绕这个问题我做了下面的操作,直接上代码

private synchronized void BottomWindow(final String num, final String strttime, final String endtime) {

        //补全请求地址
        String requestUrl = String.format("这里面写的就是请求接口url");
        //创建一个请求
        Request request = new Request.Builder().url(requestUrl).get().build();
        //创建一个Call
        Call call = okHttpClient.newCall(request);
        //执行请求
        try {
            Response response = call.execute();
            String string = response.body().string();
            final JSONObject jsonObject = new JSONObject(string);
            int status = jsonObject.getInt("status");
            if (status == 0) {
                mHandler.post(new Runnabl
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用OkHttp进行同步请求的代码中,首先需要创建一个OkHttpClient对象。然后,通过构建Request对象指定请求的URL和其他参数。接下来,使用OkHttpClient的newCall()方法创建一个Call对象,并将Request对象作为参数传入。然后,调用Call对象的execute()方法来发送请求并获取服务器的响应。最后,通过response.body().string()方法来获取服务器返回的字符串数据。在代码中,这些步骤都是在子线程中完成的,因为同步请求会阻塞主线程执行。需要注意的是,网络请求必须在子线程中完成,以避免阻塞主线程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Android 中Okhttp同步请求与异步请求详解](https://blog.csdn.net/lu202032/article/details/117375167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Android:Okhttp3详解(get和post同步异步文件上传)](https://blog.csdn.net/Karl_MIN/article/details/123513993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值