zoukankan      html  css  js  c++  java
  • HttpRequestProxy

    /************************************************************************
    日  期:		
    作  者:		
    版  本:      
    描  述:	    
    历  史:      
    ************************************************************************/
    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;
    	}
    }
    

      

  • 相关阅读:
    十. 代码格式化插件 Tag
    小知识点
    IE11 打开方式 出现两个图标
    一 OS X 焦点 切换
    九. 边栏工具 浏览器工具 SideBarEnhancements
    Django进阶之缓存和信号
    Django进阶之中间件
    Python 堡垒机编程之Paramiko
    Django ORM补充
    Web 开发基础之Html
  • 原文地址:https://www.cnblogs.com/xuxian/p/5976495.html
Copyright © 2011-2022 走看看