java发送http请求时设置请求方式(post,put,delete,get)

重点:java.net包下面有两个类是用来调用URL请求的。
第一个 URLconnection 只能使用常用的post方式请求
第二个 httpUrlconnection 可以主动设置四种请求方式
其中,这两个类都是可以设置header参数传参的(setRequestProperty(key,value))
代码如下:

1.urlconnection

public static String httpPost (String url, byte[] parameter, String base64) throws Exception{

             java.util.Date data = new java.util.Date();
             String timestamp = String.valueOf(data.getTime()/1000);//时间戳(精确到秒)
             String signature = "*******";           
            //定义stringbuffer  方便后面读取网页返回字节流信息时的字符串拼接
            StringBuffer buffer = new StringBuffer();

            //创建url_connection
            java.net.URLConnection http_url_connection = null;
            try {
                http_url_connection = (new java.net.URL(url)).openConnection();

                http_url_connection.setDoInput(true);
                http_url_connection.setDoOutput(true);

                http_url_connection.setRequestProperty("Content-Length", String.valueOf(parameter.length));
                http_url_connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
                http_url_connection.setRequestProperty("accept", "application/json");

                http_url_connection.setRequestProperty("authkey","************");//header设置authkey的参数 
                http_url_connection.setRequestProperty("signature",signature);//header设置signature的参数 
                http_url_connection.setRequestProperty("timestamp",timestamp);//header设置timestamp的参数

                http_url_connection.setUseCaches(false);

                if (null!=base64) {
                    //如果传入的参数不为空,则通过base64将传入参数解码
                    http_url_connection.setRequestProperty("Authorization", "Basic "+new String(java.util.Base64.getEncoder().encode(base64.getBytes("utf-8")), "utf-8"));
                }

                // write request.
                java.io.BufferedOutputStream output_stream = new java.io.BufferedOutputStream(http_url_connection.getOutputStream());
                output_stream.write(parameter);
                output_stream.flush();
                output_stream.close();
                output_stream = null;

                java.io.InputStreamReader input_stream_reader = new java.io.InputStreamReader(http_url_connection.getInputStream(), "utf-8");
                java.io.BufferedReader buffered_reader = new java.io.BufferedReader(input_stream_reader);
                buffer = new StringBuffer();
                String line;
                while ((line = buffered_reader.readLine()) != null) {
                    buffer.append(line);
                }
                line=null;
                input_stream_reader.close();
                input_stream_reader = null;
                buffered_reader.close();
                buffered_reader = null;
            //  http_url_connection.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return buffer.toString();
        }

2.httpUrlconnection


    public static String httpPost (String url, byte[] parameter, String base64) throws Exception{

         java.util.Date data = new java.util.Date();
         String timestamp = String.valueOf(data.getTime()/1000);//时间戳(精确到秒)
         String signature = "*********";

        //定义stringbuffer  方便后面读取网页返回字节流信息时的字符串拼接
        StringBuffer buffer = new StringBuffer();

        //创建url_connection
        java.net.URLConnection http_url_connection = null;
        try {
            http_url_connection = (new java.net.URL(url)).openConnection();
            java.net.HttpURLConnection HttpURLConnection = (java.net.HttpURLConnection)http_url_connection;//将urlconnection类强转为httpurlconnection类

            HttpURLConnection.setDoInput(true);
            HttpURLConnection.setDoOutput(true);

            HttpURLConnection.setRequestMethod("DELETE");//设置请求方式。可以是delete put post get
            HttpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameter.length));//设置内容的长度
            HttpURLConnection.setRequestProperty("Content-Type", "application/json;charset=utf-8");//设置编码格式
            HttpURLConnection.setRequestProperty("accept", "application/json");//设置接收返回参数格式

            HttpURLConnection.setRequestProperty("authkey","************");
            HttpURLConnection.setRequestProperty("signature",signature);
            HttpURLConnection.setRequestProperty("timestamp",timestamp);

            HttpURLConnection.setUseCaches(false);

            if (null!=base64) {
                //如果传入的参数不为空,则通过base64将传入参数解码
                HttpURLConnection.setRequestProperty("Authorization", "Basic "+new String(java.util.Base64.getEncoder().encode(base64.getBytes("utf-8")), "utf-8"));
            }

            // write request.
            java.io.BufferedOutputStream output_stream = new java.io.BufferedOutputStream(HttpURLConnection.getOutputStream());
            output_stream.write(parameter);
            output_stream.flush();
            output_stream.close();
            output_stream = null;

            java.io.InputStreamReader input_stream_reader = new java.io.InputStreamReader(HttpURLConnection.getInputStream(), "utf-8");
            java.io.BufferedReader buffered_reader = new java.io.BufferedReader(input_stream_reader);
            buffer = new StringBuffer();
            String line;
            while ((line = buffered_reader.readLine()) != null) {
                buffer.append(line);
            }
            line=null;
            input_stream_reader.close();
            input_stream_reader = null;
            buffered_reader.close();
            buffered_reader = null;
        //  http_url_connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return buffer.toString();
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自在如风。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值