Java发送url请求

发送post请求参数为json的方法

public static String sendPost(String url, String json) throws IOException {
    String result = "";
    HttpPost httpPost = new HttpPost(url);
    CloseableHttpClient httpClient = HttpClients.createDefault();
    try {
        BasicResponseHandler handler = new BasicResponseHandler();
        StringEntity entity = new StringEntity(json, "utf-8");//解决中文乱码问题
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        httpPost.setEntity(entity);
        result = httpClient.execute(httpPost, handler);
        return result;
    } catch (Exception e) {
        e.printStackTrace();

    } finally {
        try {
            httpClient.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return result;
}

sendPost("http://www.baidu.com", JSON.toJSONString(entity));

通过HttpClient方式获取接口信息

需提前引入jar包

<dependency>
   <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient</artifactId>
   <version>4.5.5</version>
</dependency>
public static String sendGet(){
    String url = "http://www.baidu.com";
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpGet httpGet = new HttpGet(url);
    //System.out.println("Get:"+httpGet.getURI());
    CloseableHttpResponse httpResponse = null;
    String content = "";
    try {
        httpResponse = httpClient.execute(httpGet);
        HttpEntity entity =httpResponse.getEntity();
        if(entity!=null) {
            //System.out.println("响应状态:"+httpResponse.getStatusLine());
            System.out.println("请求完成!!!!!");
            content = EntityUtils.toString(entity,"utf-8");
            //System.err.println("响应内容:"+content);
            //System.out.println("内容长度:"+content.length());
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        if(httpResponse!=null) {
            try {
                httpResponse.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            httpClient.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return content;
}

httpclient发送xml请求格式

public static void sendXml() throws Exception {
    System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
    System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
    System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "stdout");

    String url = "http://aqjg.swj.beijing.gov.cn/oa/service/portalFrameworkService";

    StringBuilder sb = new StringBuilder();
    sb.append("<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:fres='http://www.freshpower.com.cn'>");
    sb.append("   <soapenv:Header/>");
    sb.append("   <soapenv:Body>");
    sb.append("      <fres:sendSMS>");
    sb.append("         <fres:in0>{'orgCode':'MHAPP110000','sysCode':'D7cnHmNYXVQEaR1b','data':{ 'sender':'门户APP','receiverphone':'15200142278','messagecontent':'Java发送测试短信!!!'}}</fres:in0>");
    sb.append("      </fres:sendSMS>");
    sb.append("   </soapenv:Body>");
    sb.append("</soapenv:Envelope>");

    String xmlString = sb.toString();

    HttpClient client = new HttpClient();
    PostMethod myPost = new PostMethod(url);
    client.getParams().setSoTimeout(300*1000);
    String responseString = null;
    try{
        myPost.setRequestEntity(new StringRequestEntity(xmlString,"text/xml","utf-8"));
        int statusCode = client.executeMethod(myPost);
        if(statusCode == HttpStatus.SC_OK){
            BufferedInputStream bis = new BufferedInputStream(myPost.getResponseBodyAsStream());
            byte[] bytes = new byte[1024];
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            int count = 0;
            while((count = bis.read(bytes))!= -1){
                bos.write(bytes, 0, count);
            }
            byte[] strByte = bos.toByteArray();
            responseString = new String(strByte,0,strByte.length,"utf-8");
            bos.close();
            bis.close();
        }
    }catch (Exception e) {
        //log.error(e.getMessage(), e);
    }
    myPost.releaseConnection();
    client.getHttpConnectionManager().closeIdleConnections(0);
    System.out.println("responseString:"+responseString);
}

另一种发送http请求的方法(没亲自试过)

/**
 * 向指定URL发送GET方法的请求
 * @param url 发送请求的URL
 * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 * @return URL 所代表远程资源的响应结果
 */
public static String sendGet(String url, String param) {
    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()));
        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;
}

/**
 * 向指定 URL 发送POST方法的请求
 * @param url 发送请求的 URL
 * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 * @return 所代表远程资源的响应结果
 */
public static String sendPost(String url, String param) {
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    try {
        URL realUrl = new URL(url);
        // 打开和URL之间的连接
        URLConnection conn = realUrl.openConnection();
        // 设置通用的请求属性
        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()));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
    } catch (Exception e) {
        System.out.println("发送 POST 请求出现异常!" + e);
        e.printStackTrace();
    }
    // 使用finally块来关闭输出流、输入流
    finally {
        try {
            if (out != null) {
                out.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    return result;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇