import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import com.cmcc.rd.aoi.log.LoggerFactory;
import com.cmcc.rd.aoi.util.DatetimeUtil;
public class HttpPostUtil
{
/**
*
* @param postXML
* 放在消息内容体中的字符串
* @param url
* 要访问的 URL
* @return 返回POST请求响应返回的内容体字符串和cookie
*/
public static String[] post(String postXML, String url, Map<String, String> map)
{
String urlstr = url;
String servlet_res = null;
InputStream in = null;
HttpURLConnection conn = null;
String setCookie = null;
try
{
LoggerFactory.log("SendTo: " + urlstr);
URL send_url = new URL(urlstr);
conn = (HttpURLConnection) send_url.openConnection();
conn.setConnectTimeout((int) (10 * DatetimeUtil.SECOND));
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
conn.setRequestMethod("POST");
for (String key : map.keySet())
conn.setRequestProperty(key, map.get(key));
conn.connect();
OutputStream raw = conn.getOutputStream();
OutputStream buf = new BufferedOutputStream(raw);
OutputStreamWriter out = new OutputStreamWriter(buf, "UTF-8");
System.out.println("inputData = " + postXML);
out.write(postXML);
out.flush();
out.close();
in = conn.getInputStream();
setCookie = conn.getHeaderField("Set-Cookie");
// 采用byte流读取
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] bytes = new byte[1];
while (in.read(bytes) != -1)
{
baos.write(bytes);
}
in.close();
String ouputData = new String(baos.toByteArray());
LoggerFactory.log("ouputData = " + ouputData);
servlet_res = ouputData;
}
catch (Exception e)
{
LoggerFactory.log(e.getMessage());
e.printStackTrace();
}
finally
{
try
{
if (in != null)
in.close();
if (conn != null)
conn.disconnect();
}
catch (IOException e)
{
LoggerFactory.log(e.getMessage());
}
}
return new String[] {servlet_res, setCookie};
}
}
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!