原生HTTP请求第三方接口

130 阅读1分钟
public static String request(String requestXML,PlatFormParam pfp) throws Exception {
        StringBuffer buffer = new StringBuffer();
        String strMessage = "";
        String strURL = "";
        InputStream inputStream = null;
        OutputStream outputStream = null;

        BufferedReader reader = null;
        OutputStreamWriter writer = null;
        URL url = null;
        HttpURLConnection connection = null;
        strURL = pfp.getUrl();
        try {
        	System.out.println("上传平台的地址是: "+strURL);
            url = new URL(strURL);
            connection = (HttpURLConnection) url.openConnection();
            System.setProperty("sun.net.client.defaultConnectTimeout", "120000");
            System.setProperty("sun.net.client.defaultReadTimeout", "120000"); 
            connection.setDoInput(true);
            connection.setDoOutput(true);
            connection.setRequestMethod("POST");
            connection.setAllowUserInteraction(true);
            connection.connect();
            outputStream = connection.getOutputStream();
            writer = new OutputStreamWriter(outputStream);
            writer.write(requestXML);
            writer.flush();
            writer.close();
            int requestcode= connection.getResponseCode();
            System.out.println("连接平台返回值为:"+requestcode);
            if (requestcode!=connection.HTTP_OK&&requestcode!=connection.HTTP_CREATED&&requestcode!=connection.HTTP_ACCEPTED) {
            	inputStream = connection.getErrorStream();
			}else{
				inputStream=connection.getInputStream();
			}
            reader = new BufferedReader(new InputStreamReader(inputStream));
            while ((strMessage = reader.readLine()) != null) {
                buffer.append(strMessage);
            }
        } catch (Exception ex) {
            throw ex;
        } finally {
            if (reader != null) {
                reader.close();
            }
            connection.disconnect();
        }
        System.out.println("平台返回报文为:"+buffer.toString());
        return buffer.toString();
    }