http get post java_java發送http的get、post請求實現代碼

Http請求類

package wzh.Http;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

import java.util.List;

import java.util.Map;

public class HttpRequest {

/**

* 向指定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> 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;

}

}

調用方法:

public static void main(String[] args) {

//發送 GET 請求

String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");

System.out.println(s);

//發送 POST 請求

String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");

System.out.println(sr);

}

以上這篇java發送http的get、post請求實現代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531737.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531737.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531737.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java string的作用_淺談java String不可變的好處

一、java內部String類的實現:java 8:public final class Stringimplements java.io.Serializable, Comparable, CharSequence {/** The value is used for character storage. */private final char value[];}java 9 及之后:(使用coder標識了…

34988 Happy Reversal(二進制去取反)

1 /*2 題意:給多個二進制數,對某些數進行按位取反操作!3 然后從中找到最大數和最小數,并輸出他們的差值! 4 注意:所有的數都是整數,包括取反之后5 6 思路:一個n為二進…

java vim ide_Vim配置Java IDE

首先安裝vim (當然做java 開發要裝jdk 這個就不說了)emerge -av vim (gentoo 系統上安裝vim 的命令,你可以用rpm ,apt-get )給vim 安裝 javacomplete 插件http://www.vim.org/scripts/script.php?script_id1785 這個插件的作用是實現一部分代碼提示功能 比如你輸入 System…

java中線程存活和線程執行的問題!

1 /*2 下面的程序會出現下面的情況,當Thread-0, Thread-1, Thread-2都被wait的時候,可能會同時蘇醒3 Thread-0 put4 Thread-1 put5 Thread-2 put6 Thread-3 get//在此處,Thread-3拿到鎖之后&#xff0…

java中多線程模擬(多生產,多消費,Lock實現同步鎖,替代synchronized同步代碼塊)...

import java.util.concurrent.locks.*; class DuckMsg{int size;//烤鴨的大小String id;//烤鴨的廠家和標號DuckMsg(){}DuckMsg(int size, String id){this.sizesize;this.idid;}public String toString(){return id " 大小為:" size;} } class Duck{private int …

java encode 空格_javaWeb中URLEncoder.encode空格問題

近期開發一個在線坐席的功能。發現推送的消息中空格變成了 。查詢發現URLEncoder.encode的問題。曾經用的時候也沒注意過,解決的方法網上是對URLEncoder.encode的之后的字符串進行替換號,這樣的方式假設真的有號那也被替換了。所以應該在URLEncoder.enco…

poj 1386 Play on Words(有向圖歐拉回路)

1 /*2 題意:單詞拼接,前一個單詞的末尾字母和后一個單詞的開頭字母相同3 思路:將一個單詞的開頭和末尾單詞分別做兩個點并建一條有向邊!然后判斷是否存在歐拉回路或者歐拉路 4 5 再次強調有向圖歐拉路或歐拉回路的判定方法&…

java web tomcat 實例_Java Web應用開發實例

[1.GIS的概念 1.1什么是gis 地理信息系統 (GIS, Geographic Information System) 是一種基于計算機的工具,它可以對在地球上存在的東西和發生的事件進行成圖和分析。 GI上次提到了EclipseTomcatLomboz Java Web開發環境的配置,可環…

poj2513Colored Sticks(無向圖的歐拉回路)

1 /*2 題意:將兩端涂有顏色的木棒連在一起,并且連接處的顏色相同!3 思路:將每一個單詞看成一個節點,建立節點之間的無向圖!判斷是否是歐拉回路或者是歐拉路4 5 并查集判通 奇度節點個數等于2或…

java java.lang.enum_源碼閱讀-java基礎-java.lang.Enum

1、引言枚舉類型是 JDK 5 之后引進的一種非常重要的引用類型,可以用來定義一系列枚舉常量。相比與常量(public static final定義),在安全性、指意性、可讀性方面更勝一籌。另外它可以和switch case搭配使用。2、類定義實際上在使用關鍵字enum創建枚舉類型…

java中有關線程的題目

1,看一下下面程序錯誤發生在哪一行! class Test implements Runnable{public void run(Thread t){} }2,輸出結果是什么? class Test{public static void main(String[] args){new Thread(new Runnable(){public void run(){System…

java 可逆的加密算法_java實現AES可逆加密算法

package com.hdu.encode;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/*** AES 是一種可逆加密算法,對用戶的敏感信息加密處理 對…

森林轉換成二叉樹以及二叉樹還原為森林代碼

1 /*2 森林轉換成二叉樹3 思路:u的孩子節點為v1, v2, v3....(v1,v2,....互為兄弟節點) 4 那么將u的一個孩子節點(v1)連在u的左子樹上,那么其他的孩子節點都連在v1的右子樹上! 5 …

poj1062昂貴的聘禮(Dijkstra**)

1 /*2 題意: 物主有一個物品,價值為P,地位為L, 以及一系列的替代品Ti和該替代品所對應的"優惠"Vi3 g[u][i] 表示的是u物品被i物品替換后的優惠價格!(u>0, i>0)4 g[u][0]表示不用替換該物品的…

java openmp庫_OpenMP的環境變量及庫函數

OpenMP的環境變量:環境變量 描述 示例OMP_SCHEDULE 控制for循環任務分配結構的調度 OMP_SCHEDULE"guided,2"OMP_NUM_THREADS 設置默認線程的個數 OMP_SCHEDULE4OpenMP的庫函數函數名稱 描述int omp_get_num_threads(void) 返回當前使用的線程個數&#xf…

hdu1269迷宮城堡(判斷有向圖是否是一個強連通圖)

1 /* 題意: 給你一個圖,求這個有向圖示否是一個強連通圖(每兩個節點都是可以相互到達的)! 思路1:按正向邊dfs一遍,將經過的節點計數,如果記錄的節點的個數小于…

mgg mysql_mgg文件怎么轉換mp3格式?

步驟/方法方法/步驟1:下載載視頻轉換器,我們說到在官網下載比較好吧。下載完成之后,我們就直接點擊進行安裝,一般 在安裝的過程也是非常快速的,主要是按照安裝向導上的步驟進行就可以了。方法/步驟2:安裝好之后,我們就…

poj 2385Apple Catching(簡單dp)

1 /*2 題意: 有兩棵蘋果樹,每一棵蘋果樹每一秒間隔的掉落下來一個蘋果,一個人在樹下接住蘋果,不讓蘋果掉落!3 人在兩棵樹之間的移動是很快的!但是這個人移動的次數是有限制的,問最多可以…

java dao 泛型的好處_java中泛型有什么作用

泛型的作用如下:1、類型安全泛型的主要目標是提高 Java 程序的類型安全。編譯時的強類型檢查;通過知道使用泛型定義的變量的類型限制,編譯器可以在一個高得多的程度上驗證類型假設。沒有泛型,這些假設就只存在于程序員的頭腦中(或…

poj3249Test for Job(記憶化搜索)

1 /*2 題意:給一個DAG圖,n個節點,每個節點都對應一個值,入度為零的點走到出度為零的點,計算所有可能路徑3 經過節點值的和最大!4 5 思路:記憶話搜索:也就是如果我們搜索…