package com.customization.dito.sendtodo; import com.sun.jersey.core.util.Base64; import okhttp3.*; import weaver.general.BaseBean; import java.io.IOException; public class HttpRequestUtil extends BaseBean{ private int retryTimes = 2; /*** * * @param dataJson * @return */ public String doPostByAuth(String portal_todourl,String dataJson,String auth){ //"http://172.16.25.133/portal-web/centerTodo/sync" String zhjkbs = "com.customization.dito.sendtodo.HttpRequestUtil.doPostByAuth"; BaseBean bb = new BaseBean(); bb.writeLog("doPostByAuth--start:"+System.currentTimeMillis()); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); String authorization = "Basic "+new String(Base64.encode(auth)); bb.writeLog("authorization:"+authorization); bb.writeLog("portal_todourl:"+portal_todourl); bb.writeLog("dataJson:"+dataJson); bb.writeLog("auth:"+auth); String msgData = "" ; try { OkHttpClient client = new OkHttpClient().newBuilder() .addInterceptor(new HttpRequestUtil.OkhttpInterceptor(retryTimes,dataJson)) .retryOnConnectionFailure(false).build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, dataJson); Request request = new Request.Builder() .url(portal_todourl) .method("POST", body) .addHeader("Authorization", authorization) .addHeader("Content-Type", "application/json") .build(); Response response = client.newCall(request).execute(); bb.writeLog("doPostByAuth--end:"+System.currentTimeMillis()); int code = response.code(); String bodyMsg = response.body().string(); bb.writeLog("response.code():"+code); bb.writeLog("response.body():"+bodyMsg); if(code == 200){ msgData = bodyMsg; return msgData; }else { try{ bb.writeLog("HttpRequestUtil--e:"+bodyMsg); String jdmc = "接口第1次调用"; sendPortalErrorUtil.doRecordPortalErrorInfo4Phase2("1","",jdmc,"1",dataJson,String.valueOf(code),bodyMsg,zhjkbs,""); }catch (Exception e){ e.printStackTrace(); bb.writeLog("doPostByAuth-e:"+e); } for (int i =0;i retryCent) { return retry(chain, retryCent + 1); } } finally { return response; } } } }