HttpClient 發送Json

    import com.fasterxml.jackson.databind.ObjectMapper;
    import msxf.model.People;
    import msxf.until.ImpalaJdbc;
    import msxf.until.NowDate;
    import org.apache.commons.configuration.PropertiesConfiguration;
    import org.apache.http.HttpStatus;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpUriRequest;
    import org.apache.http.client.methods.RequestBuilder;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.apache.http.message.BasicHeader;
    import org.apache.http.protocol.HTTP;
    import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;

    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

   /**
     * Created by shengjk1  on 2016/6/23.
     */
    public class Main {
        private final static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(Main.class);
        private static long c =System.currentTimeMillis();

        public static void main(String[] args) {

            try {
                //impala 查詢返回,peopleList
                List<People> peopleList= ImpalaJdbc.connImpala();
                Map ma=new HashMap();
                ma.put("sendtime", NowDate.nowDate());
                if(peopleList.size()==0){
                    logger.info("peopleList.size()==0");
                }
                ma.put("data",peopleList);
                ObjectMapper om=new ObjectMapper();
                PropertiesConfiguration pro =new PropertiesConfiguration("conf.properties");
                String serviceAddr=pro.getString("serviceAddr");
                logger.info("serviceAddr "+serviceAddr);

                //將對象變爲json
                String jsonStr=om.writeValueAsString(ma);
    //          System.out.println(jsonStr);

                CloseableHttpResponse httpResponse=null;
                CloseableHttpClient httpClient= HttpClientBuilder.create().setRetryHandler(new DefaultHttpRequestRetryHandler()).build();

                //設置超時時間
                HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
                factory.setConnectTimeout(1000*60*6); //單位毫秒
                factory.setReadTimeout(1000*60*5);



                //解決中文亂碼
                StringEntity stringEntity=new StringEntity(jsonStr,"UTF-8");
                stringEntity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
                HttpUriRequest httpUriRequest= RequestBuilder.post(serviceAddr).setEntity(stringEntity).build();

                httpResponse=httpClient.execute(httpUriRequest);
                logger.info(" 發送 ");
                int statusCode=httpResponse.getStatusLine().getStatusCode();
                if(statusCode== HttpStatus.SC_OK){
    //              HttpEntity entity = httpResponse.getEntity();
    //              InputStream in =entity.getContent();
                    logger.info("====文件傳輸服務器正常響應!");
                    long d =System.currentTimeMillis();
                    logger.info("結束 "+(d-c)/1000 +" s");

                }else {
                    logger.info("====文件傳輸服務器未正常響應!");

                }

            }catch (Exception e) {
                logger.error(e);

            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章