whb851423 2018-12-12 03:51 采纳率: 0%
浏览 881

关于OKHTTP 的问题请教

请教一个问题,如下代码

public class OKHttpUtil {

    public static String contentType="text/html; charset=UTF-8";
    public static int timeOunt = 30;
    public static OkHttpClient client = new OkHttpClient.Builder().readTimeout(timeOunt, TimeUnit.SECONDS).build();

    public static String sendPost(String url, Map<String, String> paramMap){

        FormBody.Builder builder = new FormBody.Builder();
        Iterator it = paramMap.keySet().iterator();
        while (it.hasNext()){
            String key = it.next().toString();
            builder.add(key,paramMap.get(key));
        }
        Request request = new Request.Builder().url(url).addHeader("Content-Type",contentType).post(builder.build()).build();
        Response response = null;
        try {
            response = client.newCall(request).execute();
            return response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 异步发送
     * @param url
     * @param paramMap
     * @param callback
     */
    public static void sendPostAsyn(String url, Map<String, String> paramMap ,Callback callback){
        FormBody.Builder builder = new FormBody.Builder();
        Iterator it = paramMap.keySet().iterator();
        while (it.hasNext()){
            String key = it.next().toString();
            builder.add(key,paramMap.get(key));
        }
        Request request = new Request.Builder().url(url).addHeader("Content-Type",contentType).post(builder.build()).build();
        Call call = client.newCall(request);
        call.enqueue(callback);
    }

}

第一次使用这个框架不是很了解,现在有2个疑问,想请教下对这个框架比较了解的朋友!
第一个疑问:
使用一个OkHttpClient 对象 在高并发时,能否即发送同步请求,又发布异步请求。如,使用
OKHttpUtil.sendPostAsyn 发送异步后,在调用OKHttpUtil。sendPost 发送同步,发送使用同一个OkHttpClient 对象。

第二个疑问
OkHttpClient 对象每次发送都要new ,还是可以像代码中初始化一个静态的一直使用

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 请问这个是什么意思?
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services
    • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
    • ¥15 模糊pid与pid仿真结果几乎一样
    • ¥15 java的GUI的运用
    • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。