Java学习资源网

您现在的位置是:网站首页>学习资源库学习资源库

http请求

阿飞 2019-07-16 技术文档128人已围观

简介发送http请求

package com.common.utils;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

import java.net.URL;

import java.net.URLConnection;

import java.util.Map;

import java.util.Map.Entry;

public class HttpUtil {

/**

     * 向指定URL发送GET方法的请求

     *

     * @param url

     *            发送请求的URL

     * @param param

     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

     * @return String 所代表远程资源的响应结果

     */

    public static String get(String url,String param){

        String result = "";

        BufferedReader in = null;

        try {

            String urlNameString = url + "?" + param;

            //System.out.println(urlNameString);

            URL realUrl = new URL(urlNameString);

            // 打开和URL之间的连接

            URLConnection connection = realUrl.openConnection();

            // 设置通用的请求属性

            connection.setRequestProperty("accept", "*/*");

            connection.setRequestProperty("connection", "Keep-Alive");

            connection.setRequestProperty("user-agent",

                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

            // 建立实际的连接

            connection.connect();

            // 获取所有响应头字段

            //Map<String, List<String>> map = connection.getHeaderFields();

            // 遍历所有的响应头字段

            /*for (String key : map.keySet()) {

                System.out.println(key + "--->" + map.get(key));

            }*/

            // 定义 BufferedReader输入流来读取URL的响应

            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

            String line;

            while ((line = in.readLine()) != null) {

                result += line;

            }

        } catch (Exception e) {

            System.out.println("发送GET请求出现异常!" + e);

            e.printStackTrace();

        }

        // 使用finally块来关闭输入流

        finally {

            try {

                if (in != null) {

                    in.close();

                }

            } catch (Exception e2) {

                e2.printStackTrace();

            }

        }

        return result;

    }

    

    public static String sendPost(String url, String param, Map<String, String> header) throws UnsupportedEncodingException, IOException {

        PrintWriter out = null;

        BufferedReader in = null;

        String result = "";

        URL realUrl = new URL(url);

        // 打开和URL之间的连接

        URLConnection conn = realUrl.openConnection();

        //设置超时时间

        conn.setConnectTimeout(5000);

        conn.setReadTimeout(15000);

        // 设置通用的请求属性

        if (header!=null) {

            for (Entry<String, String> entry : header.entrySet()) {

                conn.setRequestProperty(entry.getKey(), entry.getValue());

            }

        }

        conn.setRequestProperty("accept", "*/*");

        conn.setRequestProperty("connection", "Keep-Alive");

        conn.setRequestProperty("user-agent",

                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

        // 发送POST请求必须设置如下两行

        conn.setDoOutput(true);

        conn.setDoInput(true);

        // 获取URLConnection对象对应的输出流

        out = new PrintWriter(conn.getOutputStream());

        // 发送请求参数

        out.print(param);

        // flush输出流的缓冲

        out.flush();

        // 定义BufferedReader输入流来读取URL的响应

        in = new BufferedReader(

                new InputStreamReader(conn.getInputStream(), "utf8"));

        String line;

        while ((line = in.readLine()) != null) {

            result += line;

        }

        if(out!=null){

            out.close();

        }

        if(in!=null){

            in.close();

        }

        return result;

    }

}


Java学习资源网

加入我们

  • Java学习交流①

    QQ群号:716298150

  • Java学习交流②

    QQ群号:258435559

  • Java学习交流微信群

Java学习资源网

打赏本站

  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!
  • 微信扫码:你说多少就多少~
  • 支付宝扫码:你说多少就多少~
Java学习资源网