/************************************************************************
日 期:
作 者:
版 本:
描 述:
历 史:
************************************************************************/
package jetsennet.net;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
/**
* http请求
* @author lixiaomin
*
*/
public class HttpRequestProxy
{
/**
* 获取http内容
* @param requestUrl
* @return
* @throws Exception
*/
public static String get(String requestUrl) throws Exception
{
return get(requestUrl,"utf-8");
}
public static String get(String requestUrl,String charset) throws Exception
{
URL url = new URL(requestUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
StringWriter sw = new StringWriter();
try
{
InputStream inStream = connection.getInputStream();
InputStreamReader inr = new InputStreamReader(inStream, java.nio.charset.Charset.forName(charset));
char[] buf = new char[8096];
int size = 0;
try{
while ((size = inr.read(buf)) != -1)
sw.write(buf, 0, size);
}
finally
{
sw.close();
inr.close();
inStream.close();
}
}
finally
{
connection.disconnect();
}
return sw.toString();
}
/**
* 以POST方式发送内容并获取数据
* @param requestUrl
* @param content
* @return
* @throws Exception
*/
public static String send(String requestUrl,String content)throws Exception
{
return send(requestUrl,content,null,"utf-8");
}
public static String send(String requestUrl,String content,
HashMap<String,String> requestProperties,String charset)throws Exception
{
URL url = new URL(requestUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
if(requestProperties!=null)
{
for(String key:requestProperties.keySet())
{
String keyValue = requestProperties.get(key);
connection.setRequestProperty(key,keyValue);
if("ConnectTimeOut".equalsIgnoreCase(key))
{
connection.setConnectTimeout(Integer.parseInt(keyValue));
}
else if("ReadTimeOut".equalsIgnoreCase(key))
{
connection.setReadTimeout(Integer.parseInt(keyValue));
}
}
}
OutputStream outStream = connection.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(outStream, java.nio.charset.Charset.forName(charset));
String response = null;
try {
try {
osw.write(content);
}
finally {
osw.close();
outStream.close();
}
InputStream inStream = null;
InputStreamReader inStreamReader = null;
try {
inStream = connection.getInputStream();
}
catch (Exception exception) {
inStream = connection.getErrorStream();
}
inStreamReader = new InputStreamReader(inStream, java.nio.charset.Charset.forName(charset));
StringWriter sw = new StringWriter();
char[] buf = new char[8096];
int size = 0;
try
{
while ((size = inStreamReader.read(buf)) != -1)
sw.write(buf, 0, size);
response = sw.toString();
}
finally
{
sw.close();
inStreamReader.close();
inStream.close();
}
}
finally {
connection.disconnect();
}
return response;
}
}