直接上代码
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import javax.servlet.http.HttpServletRequest; import org.jdom.CDATA; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.output.XMLOutputter; public class OperationDao { public static String sendRequest(OperationBeanBase opBean) throws JDOMException, Exception { if (opBean.getRequestType().equals("post")) return sendPostRequest(opBean); else if (opBean.getRequestType().equals("get")) return sendGetRequest(opBean); return ""; } public static String sendPostRequest(OperationBeanBase opBean) throws JDOMException, Exception { URL url = new URL(opBean.getUrlString()); URLConnection con = url.openConnection(); con.setUseCaches(false); con.setDoOutput(true);//开启输入输出 con.setDoInput(true); BufferedWriter out = new BufferedWriter(new OutputStreamWriter( con.getOutputStream(),"UTF-8")); out.write(opBean.getXMLString()); out.flush(); out.close(); StringBuffer sendBack = new StringBuffer(); try { InputStream is = con.getInputStream(); InputStreamReader isr = new InputStreamReader(is,"UTF-8"); BufferedReader br = new BufferedReader(isr); String s = ""; while ((s = br.readLine()) != null) { sendBack.append(s); } } catch (Exception e) { System.out.println(e.toString()); } return sendBack.toString(); } public static String sendGetRequest(OperationBeanBase opBean) throws JDOMException, Exception { URL url = new URL(opBean.getUrlString()); URLConnection con = url.openConnection(); con.connect(); StringBuffer sendBack = new StringBuffer(); try { InputStream is = con.getInputStream(); InputStreamReader isr = new InputStreamReader(is,"UTF-8"); BufferedReader br = new BufferedReader(isr); String s = ""; while ((s = br.readLine()) != null) { sendBack.append(s); } } catch (Exception e) { System.out.println(e.toString()); } // System.out.println(sendBack); return sendBack.toString(); } }
今天又找打基于HttpURLConnection的实现
参考地址:http://code.google.com/intl/zh-TW/appengine/docs/java/urlfetch/usingjavanet.html
import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.io.OutputStreamWriter; // ... String message = URLEncoder.encode("my message", "UTF-8"); try { URL url = new URL("http://www.example.com/comment"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); writer.write("message=" + message); writer.close(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { // OK } else { // Server returned HTTP error code. } } catch (MalformedURLException e) { // ... } catch (IOException e) { // ... }
若要在外寄要求中設定 HTTP 标头,调用 HttpURLConnection 的 setRequestProperty() 方法
connection.setRequestProperty("X-MyApp-Version", "2.7.3");
connection.setFollowRedirects(false);