package com.casic.PgInterface.core.http;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class httpURL {

    static final String authorizationInput="Uradio:Ur@dio2018";//明码
    static final String authorization ="Base VXJhZGlvOlVyQGRpbzIwMTg=";//Base64加密
    static final String strUrl="http://www.uradiosys.com:8094/api/HostInfo/HostAddOrUpdateByOtherSys";//接口url
    static final String strUrl1="http://www.uradiosys.com:8094/api/LocatingData/AllResult";//接口url

    /**
     * 接口调用  POST
     */
    public static String httpURLConnectionPOST (String paramsJson) {
        try {
            URL url = new URL(strUrl1);
            // 将url 以 open方法返回的urlConnection  连接强转为HttpURLConnection连接  (标识一个url所引用的远程对象连接)
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此时cnnection只是为一个连接对象,待连接中
            connection.setDoOutput(false); // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)
            connection.setDoInput(true); // 设置连接输入流为true
//            connection.setRequestMethod("GET");// 设置请求方式为get
            connection.setRequestMethod("POST");// 设置请求方式为post
            connection.setUseCaches(false);// post请求缓存设为false
            connection.setInstanceFollowRedirects(true);//设置该HttpURLConnection实例是否自动执行重定向

            // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)
            connection.setRequestProperty("Authorization", authorization);
            connection.setRequestProperty("Content-Type", "application/json");
            connection.connect();// 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)

            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数

            dataout.writeBytes(paramsJson);// 将参数输出到连接
            dataout.flush();// 输出完成后刷新并关闭流
            dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)

            System.out.println(connection.getResponseCode());

            //连接发起请求,处理服务器响应  (从连接获取到输入流并包装为bufferedReader)
            BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
            String line;
            StringBuilder sb = new StringBuilder(); //用来存储响应数据

            // 循环读取流,若不到结尾处
            while ((line = bf.readLine()) != null) {
                sb.append(line).append(System.getProperty("line.separator"));
            }
            bf.close();//重要且易忽略步骤 (关闭流,切记!)
            connection.disconnect();//销毁连接

            return sb.toString();

        } catch (Exception e) {
            e.printStackTrace();
            return "定位设备人员同步出错";
        }
    }

    public static void main(String[] args) {
            System.out.println(httpURL.httpURLConnectionPOST(""));
    }

}