?? httpclient.java
字號:
package com.bean;/** * HttpClient.java */import java.io.*;import java.net.*;import java.util.*;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class HttpClient { public final static String CRLF = "\r\n"; public HttpClient() { } public String doGet(String urlString) { int nCount = 0; String strData = ""; try { // TraceLog.info("doGet(): URL >>>"+urlString+"<<<"); URL url = new URL(urlString); String protocol = url.getProtocol(); if (!protocol.equals("http")) throw new IllegalArgumentException("Must use 'http:' protocol"); String host = url.getHost(); // TraceLog.info("host: "+host); int port = url.getPort(); if (port == -1) port = 80; // TraceLog.info("port: "+port); String filename = url.getFile(); // TraceLog.info("file: "+filename); Socket socket = new Socket(host, port); InputStream from_server = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(from_server)); PrintWriter to_server = new PrintWriter(socket.getOutputStream()); to_server.print("GET " + filename + " HTTP/1.0" + CRLF); to_server.print(CRLF); to_server.flush(); char[] buffer = new char[102400]; int bytes_read; int nContentLength = 0; while (true) { String strTemp = br.readLine(); if (strTemp.equals(CRLF) || strTemp.equals("")) { int rc = br.read(buffer, 0, nContentLength); String strBuff = new String(buffer, 0, nContentLength); strData += strBuff; break; } else { StringTokenizer s = new StringTokenizer(strTemp); String temp = s.nextToken(); if (temp.equalsIgnoreCase("Content-Length:")) { String contentLength = s.nextToken(); nContentLength = Integer.parseInt(contentLength); } } } socket.close(); } catch (Exception e) { // TraceLog.info("doGet() Exception: " + getStackTrace(e) ); return null; } return strData; } public String doPost(String urlString, String postData) { String strData = ""; try { // TraceLog.info(">>>"+postData+"<<<"); URL url = new URL(urlString); String protocol = url.getProtocol(); if (!protocol.equals("http")) throw new IllegalArgumentException("Must use 'http:' protocol"); String host = url.getHost(); // TraceLog.info("host: "+host); int port = url.getPort(); if (port == -1) port = 80; // TraceLog.info("port: "+port); String filename = url.getFile(); // TraceLog.info("file: "+filename); Socket socket = new Socket(host, port); InputStream from_server = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(from_server)); PrintWriter to_server = new PrintWriter(socket.getOutputStream()); to_server.print("POST " + filename + " HTTP/1.0" + CRLF); to_server.print("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)" + CRLF); to_server.print("Host: " + socket.getInetAddress().getHostAddress() + CRLF); to_server.print("Pragma: no-cache" + CRLF); to_server.print("Accept: */*" + CRLF); to_server.print("Content-Length: " + postData.length() + CRLF); to_server.print("Content-Type: application/x-www-form-urlencoded" + CRLF); to_server.print(CRLF); to_server.print(postData); to_server.print(CRLF); to_server.flush(); char[] buffer = new char[102400]; int bytes_read; int nContentLength = 0; while (true) { String strTemp = br.readLine(); if (strTemp.equals(CRLF) || strTemp.equals("")) { int rc = br.read(buffer, 0, nContentLength); String strBuff = new String(buffer, 0, nContentLength); strData += strBuff; break; } else { StringTokenizer s = new StringTokenizer(strTemp); String temp = s.nextToken(); if (temp.equalsIgnoreCase("Content-Length:")) { String contentLength = s.nextToken(); nContentLength = Integer.parseInt(contentLength); } } } socket.close(); } catch (Exception e) { // TraceLog.info("doPost() Exception: "+ getStackTrace(e) ); return null; } return strData; } public String getStackTrace(Exception e) { try { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); return "\r\n----------Begin----------\r\n" + sw.toString() + "----------End------------\r\n"; } catch (Exception e2) { return "error getStackTrace()."; } } /** * @Function Get a CableSoftXML object * @param url * @return */ public CableSoftXML getCSXML(String url) { CableSoftXML csXML = null; String resp = ""; resp = doGet(url); if (resp != null || url == null) { try { Document doc = DocumentHelper.parseText(resp); csXML = new CableSoftXML(); // Set the document. csXML.gXMLDoc = doc; csXML.setAGENT_ID("AGENT_ID"); csXML.setEXT("EXT"); csXML.setPORT("PORT"); csXML.setRecURL("RecURL"); csXML.setInTel("InTel"); csXML.setObTel("ObTel"); csXML.setCustID("CustID"); csXML.setCMD("CMD"); csXML.setCMD_Value("CMD_Value"); csXML.setS_EXT("S-EXT"); csXML.setD_EXT("D-EXT"); csXML.setCSID("CSID"); csXML.setSERVICETYPE("SERVICETYPE"); csXML.setSEQNO("SEQNO"); csXML.setEXTLOG("EXTLOG"); csXML.setPara1("Para1"); csXML.setPara2("Para2"); csXML.setPara3("Para3"); csXML.setCompany("Company"); csXML.setLanguage("Language"); csXML.setFunc("Func"); csXML.setHistory("History"); csXML.setTel("Tel"); csXML.setFloor("Floor"); csXML.setStatus("Status"); csXML.setAudio("Audio"); csXML.setPayment("Payment"); doc = null; } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); return csXML; } } else { csXML = null; } resp = null; return csXML; } //Run demo public void test() { long counter = 0; String url = "http://192.168.10.250:88/ivr/ivr.aspx"; CableSoftXML csXML = null; while (true) { try { System.out.println("Start the " + counter + "th's Getting :" + url+" >>>>>"); csXML = getCSXML(url); if (csXML != null) { Iterator iter = csXML.getAvaiElements().iterator(); System.out.println("receiving ..... <<<<< "); while (iter.hasNext()) { String temp = iter.next().toString(); System.out.println(temp); } } //Start clean when counter when met 100 times if(counter % 100 == 0) { System.gc(); } Thread.sleep(300); csXML = null; counter++; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } // unit test // ---------------------------------------------- /* */// public static void main(String args[]) {// HttpClient hc = new HttpClient();// hc.test();// }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -