當前位置:編程學習大全網 - 源碼下載 - java?curl?http請求時間細節,怎麽實現

java?curl?http請求時間細節,怎麽實現

以下代碼是Java實現Http的Post、Get、代理訪問請求,可以參考壹下

package?com.snowfigure.kits.net;

import?java.io.BufferedReader;?

import?java.io.IOException;

import?java.io.InputStream;?

import?java.io.InputStreamReader;?

import?java.io.OutputStreamWriter;

import?java.io.UnsupportedEncodingException;?

import?java.net.HttpURLConnection;?

import?java.net.InetSocketAddress;

import?java.net.Proxy;

import?java.net.URL;?

import?java.net.URLConnection;

import?java.util.List;

import?java.util.Map;

/**?

*?Http請求工具類?

*?@author?snowfigure?

*?@since?2014-8-24?13:30:56?

*?@version?v1.0.1?

*/

public?class?HttpRequestUtil?{

static?boolean?proxySet?=?false;

static?String?proxyHost?=?"127.0.0.1";

static?int?proxyPort?=?8087;

/**?

*?編碼?

*?@param?source?

*?@return?

*/?

public?static?String?urlEncode(String?source,String?encode)?{?

String?result?=?source;?

try?{?

result?=?java.net.URLEncoder.encode(source,encode);?

}?catch?(UnsupportedEncodingException?e)?{?

e.printStackTrace();?

return?"0";?

}?

return?result;?

}

public?static?String?urlEncodeGBK(String?source)?{?

String?result?=?source;?

try?{?

result?=?java.net.URLEncoder.encode(source,"GBK");?

}?catch?(UnsupportedEncodingException?e)?{?

e.printStackTrace();?

return?"0";?

}?

return?result;?

}

/**?

*?發起patible;?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?的形式。

*?@param?isproxy

*是否使用代理模式

*?@return?所代表遠程資源的響應結果

*/

public?static?String?sendPost(String?url,?String?param,boolean?isproxy)?{

OutputStreamWriter?out?=?null;

BufferedReader?in?=?null;

String?result?=?"";

try?{

URL?realUrl?=?new?URL(url);

HttpURLConnection?conn?=?null;

if(isproxy){//使用代理模式

@SuppressWarnings("static-access")

Proxy?proxy?=?new?Proxy(Proxy.Type.DIRECT.HTTP,?new?InetSocketAddress(proxyHost,?proxyPort));

conn?=?(HttpURLConnection)?realUrl.openConnection(proxy);

}else{

conn?=?(HttpURLConnection)?realUrl.openConnection();

}

//?打開和URL之間的連接

//?發送POST請求必須設置如下兩行

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setRequestMethod("POST");//?POST方法

//?設置通用的請求屬性

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

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

conn.setRequestProperty("user-agent",

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

conn.setRequestProperty("Content-Type",?"application/x-www-form-urlencoded");

conn.connect();

//?獲取URLConnection對象對應的輸出流

out?=?new?OutputStreamWriter(conn.getOutputStream(),?"UTF-8");

//?發送請求參數

out.write(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)?{

//demo:代理訪問

String?url?=?"";

String?sr=HttpRequestUtil.sendPost(url,para,true);

System.out.println(sr);

}

}

  • 上一篇:Jq多重動畫源代碼
  • 下一篇:什麽是手機操作系統,紅外,藍牙
  • copyright 2024編程學習大全網