您的位置:首页 > 编程语言 > Java开发

Java发送post,get请求通用方法

2015-01-29 14:06 381 查看

/**

     * 发送HTTP请求

     *

     * @param urlString

     * @return 响映对象

     * @throws IOException

     */

    private HttpRespons send(String urlString, String method,

            Map<String, String> parameters, Map<String, String> propertys)

            throws IOException {

        HttpURLConnection urlConnection = null;

 

        if (method.equalsIgnoreCase("GET") && parameters != null) {

            StringBuffer param = new StringBuffer();

            int i = 0;

            for (String key : parameters.keySet()) {

                if (i == 0)

                    param.append("?");

                else

                    param.append("&");

                param.append(key).append("=").append(parameters.get(key));

                i++;

            }

            urlString += param;

        }

        URL url = new URL(urlString);

        urlConnection = (HttpURLConnection) url.openConnection();

 

        urlConnection.setRequestMethod(method);

        urlConnection.setDoOutput(true);

        urlConnection.setDoInput(true);

        urlConnection.setUseCaches(false);

 

        if (propertys != null)

            for (String key : propertys.keySet()) {

                urlConnection.addRequestProperty(key, propertys.get(key));

            }

 

        if (method.equalsIgnoreCase("POST") && parameters != null) {

            StringBuffer param = new StringBuffer();

            for (String key : parameters.keySet()) {

        

                param.append(key).append("=").append(parameters.get(key));

                param.append("&");

            }

            String params = param.toString().substring(0,param.toString().length()-1) ;

//            System.out.println(params);

            urlConnection.getOutputStream().write(params.getBytes());

            urlConnection.getOutputStream().flush();

            urlConnection.getOutputStream().close();

        }

 

        return this.makeContent(urlString, urlConnection);

    }

/**

     * 得到响应对象

     *

     * @param urlConnection

     * @return 响应对象

     * @throws IOException

     */

    private HttpRespons makeContent(String urlString,

            HttpURLConnection urlConnection) throws IOException {

        HttpRespons httpResponser = new HttpRespons();

        try {

            InputStream in = urlConnection.getInputStream();

            BufferedReader bufferedReader = new BufferedReader(

                    new InputStreamReader(in));

            httpResponser.contentCollection = new Vector<String>();

            StringBuffer temp = new StringBuffer();

            String line = bufferedReader.readLine();

            while (line != null) {

                httpResponser.contentCollection.add(line);

                temp.append(line).append("\r\n");

                line = bufferedReader.readLine();

            }

            bufferedReader.close();

 

            String ecod = urlConnection.getContentEncoding();

            if (ecod == null)

                ecod = this.defaultContentEncoding;

 

            httpResponser.urlString = urlString;

 

            httpResponser.defaultPort = urlConnection.getURL().getDefaultPort();

            httpResponser.file = urlConnection.getURL().getFile();

            httpResponser.host = urlConnection.getURL().getHost();

            httpResponser.path = urlConnection.getURL().getPath();

            httpResponser.port = urlConnection.getURL().getPort();

            httpResponser.protocol = urlConnection.getURL().getProtocol();

            httpResponser.query = urlConnection.getURL().getQuery();

            httpResponser.ref = urlConnection.getURL().getRef();

            httpResponser.userInfo = urlConnection.getURL().getUserInfo();

 

            httpResponser.content = new String(temp.toString().getBytes(), ecod);

            httpResponser.contentEncoding = ecod;

            httpResponser.code = urlConnection.getResponseCode();

            httpResponser.message = urlConnection.getResponseMessage();

            httpResponser.contentType = urlConnection.getContentType();

            httpResponser.method = urlConnection.getRequestMethod();

            httpResponser.connectTimeout = urlConnection.getConnectTimeout();

            httpResponser.readTimeout = urlConnection.getReadTimeout();

 

            return httpResponser;

        } catch (IOException e) {

            throw e;

        } finally {

            if (urlConnection != null)

                urlConnection.disconnect();

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java