All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.mhuang.ext.interchan.payment.wechat.util.HttpUtil Maven / Gradle / Ivy

There is a newer version: 1.6.1
Show newest version
package tech.mhuang.ext.interchan.payment.wechat.util;


import tech.mhuang.core.io.IOUtil;
import tech.mhuang.core.util.StringUtil;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;

public class HttpUtil {
    // in milliseconds
    private final static int CONNECT_TIMEOUT = 5000;
    private final static String DEFAULT_ENCODING = "UTF-8";

    public static String postData(String urlStr, String data) throws Exception {
        return postData(urlStr, data, null, null, 0);
    }

    public static String postData(String urlStr, String data, String contentType, String ip, int port) throws Exception {
        BufferedReader reader = null;
        try {
            URL url = new URL(urlStr);
            URLConnection conn;
            if (StringUtil.isNotEmpty(ip)) {
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, port));
                // http 代理
                conn = url.openConnection(proxy);
            } else {
                conn = url.openConnection();
            }
            conn.setDoOutput(true);
            conn.setConnectTimeout(CONNECT_TIMEOUT);
            conn.setReadTimeout(CONNECT_TIMEOUT);
            if (contentType != null) {
                conn.setRequestProperty("content-type", contentType);
            }
            OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), DEFAULT_ENCODING);
            if (data == null) {
                data = "";
            }
            writer.write(data);
            writer.flush();
            writer.close();

            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), DEFAULT_ENCODING));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("\r\n");
            }
            return sb.toString();
        } finally {
            IOUtil.close(reader);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy