后台发送http请求通用方法,包括get和post

package com.examsafety.service.sh;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

/**
 *
 * @Description:   后台发送HTTP请求的公共方法
 * @Version:       V1.0.0
 * @Date:          2017年7月31日 下午1:51:25
 */
public class SendUrlData {
    /**
     * 发送远端POST请求的公共方法
     * @param sendUrl    (远程请求的URL)
     * @param param    (远程请求参数)
     * @return JSONObject    (远程请求返回的JSON)
     */
    public static JSONObject sendPostUrl(String url, String param){
        PrintWriter out = null;
        BufferedReader in = null;
        JSONObject jsonObject = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setRequestMethod("POST");
            conn.setConnectTimeout(10000);
            conn.setReadTimeout(10000);
            conn.connect();
            // 获取HttpURLConnection对象对应的输出流(设置请求编码为UTF-8)
            out = new PrintWriter(
                    new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 获取请求返回数据(设置返回数据编码为UTF-8)
            in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            jsonObject = JSONObject.fromObject(result);
            System.out.println(jsonObject);
        } catch (IOException e) {
             System.out.println("发送POST请求出现异常!" + e);
            e.printStackTrace();
        } finally{
            try{
                if(out!=null){
                    out.close();
                }
                if(in!=null){
                    in.close();
                }
            }
            catch(IOException ex){
                ex.printStackTrace();
            }
        }

        return jsonObject;
    }
    /**
     * 发送远端GET请求的公共方法
     * @param sendUrl    (远程请求的URL)
     * @param param    (远程请求参数)
     * @return JSONObject    (远程请求返回的JSON)
     */
    public static JSONObject sendGetUrl(String url, String param) {
        JSONObject jsonObject = null;
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            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(), "UTF-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            jsonObject = JSONObject.fromObject(result);
            System.out.println(jsonObject);
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return jsonObject;

    }
}

参数说明

url:需要请求的URL地址

param:请求携带的参数(格式:“key1=value1&key2=value2&key3=value3”)

时间: 2024-10-07 21:04:27

后台发送http请求通用方法,包括get和post的相关文章

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比 在项目中需要使用http调用接口,实现了两套发送http请求的方法,一个是使用apache的httpclient提供的http链接池来发送http请求,另一个是使用java原生的HttpURLConnection来发送http请求,并对两者性能进行了对比. 使用httpclient中的链接池发送http请求 使用最新的4.5.2版httpclient进行实现.在maven中引入 <

后台发送get请求

第一步:编写Controller,让后台去请求接口 package controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bin

C#后台发送HTTP请求

转载自:http://www.cnblogs.com/leon719/p/4263673.html using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System; namespace KL.EDMS.Business.Report {     public class FaultCountLogic     {     

通过java.net.URLConnection发送HTTP请求的方法

1.GET与POST请求的区别 a) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, b) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内. 2.URLConnection的对象 a) 获取URLConnection实例 URL url = new URL(urlString); // 根据url生成urlConnection对象 urlConnection = (HttpURLConnection) url.

【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法

Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection) 2.设置请求的参数 3.发送请求 4.以输入流的形式获取返回内容 5.关闭输入流 封装请求类 1 package com.util; 2 3 import java.io.BufferedReader; 4 import java.io.IOExcept

【JAVA】通过HttpClient发送HTTP请求的方法

HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 嵌入在 HTML 页面中的javascript 代码,猜测内容类型,重新格式化请求/重定向URI,或者其它和 HTTP 运输无关的功能. HttpClient使用 使用需要引入jar包,maven项目引入如下: 1 <dependency> 2 <groupId>org.apache

Nodejs后台发送https请求验证证书

项目中用到了很多第三方的库,这些库在生产环境使用的时候的都会发送https的请求出去,但是再发送请求的时候nodejs会验证证书,没有证书的时候都会无法通过,这里可以修改代码进行修改这个问题, 1.在发送https请求的时候添加如下代码: rejectUnauthorized: false, 如图,某个库: 2.还有就是全局设置. 启动程序的时候设置: process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

php发送post请求的方法

<?php /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data post键值对数据 * @return string */ function send_post($url, $post_data) { $postdata = http_build_query($post_data); $options = array( 'http' => array( 'method' => 'POST', 'header

Java后台发送Post请求,数据传输格式JSON

代码如下: 1 package com.test; 2 3 import java.io.BufferedReader; 4 import java.io.InputStream; 5 import java.io.InputStreamReader; 6 7 import net.sf.json.JSONObject; 8 9 import org.apache.http.HttpResponse; 10 import org.apache.http.HttpStatus; 11 import