通過HttpURLConnection類比post表單提交

來源:互聯網
上載者:User

標籤:

通過HttpURLConnection類比post表單提交

package junit;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import org.junit.Test;import com.hrtx.util.StreamTool;public class EsmTest {    /**     * 通過HttpURLConnection類比post表單提交     * @throws Exception     */    @Test    public void sendEms() throws Exception {        String wen = "MS2201828";        String btnSearch = "EMS快遞查詢";        URL url = new URL("http://www.kd185.com/ems.php");        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        conn.setRequestMethod("POST");// 提交模式        // conn.setConnectTimeout(10000);//連線逾時 單位毫秒        // conn.setReadTimeout(2000);//讀取逾時 單位毫秒        conn.setDoOutput(true);// 是否輸入參數        StringBuffer params = new StringBuffer();        // 表單參數與get形式一樣        params.append("wen").append("=").append(wen).append("&")              .append("btnSearch").append("=").append(btnSearch);        byte[] bypes = params.toString().getBytes();        conn.getOutputStream().write(bypes);// 輸入參數        InputStream inStream=conn.getInputStream();        System.out.println(new String(StreamTool.readInputStream(inStream), "gbk"));    }}


封裝後的代碼:



   /**
* 通過HttpURLConnection類比post表單提交 * * @param path * @param params 例如"name=zhangsan&age=21" * @return * @throws Exception */ public static byte[] sendPostRequestByForm(String path, String params) throws Exception{ URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST");// 提交模式 // conn.setConnectTimeout(10000);//連線逾時 單位毫秒 // conn.setReadTimeout(2000);//讀取逾時 單位毫秒 conn.setDoOutput(true);// 是否輸入參數 byte[] bypes = params.toString().getBytes(); conn.getOutputStream().write(bypes);// 輸入參數 InputStream inStream=conn.getInputStream(); return StreamTool.readInputStream(inStream); }
package com.hrtx.util;import java.io.ByteArrayOutputStream;import java.io.InputStream;public class StreamTool {    /**     * 從輸入資料流中讀取資料     * @param inStream     * @return     * @throws Exception     */    public static byte[] readInputStream(InputStream inStream) throws Exception{        ByteArrayOutputStream outStream = new ByteArrayOutputStream();        byte[] buffer = new byte[1024];        int len = 0;        while( (len = inStream.read(buffer)) !=-1 ){            outStream.write(buffer, 0, len);        }        byte[] data = outStream.toByteArray();//網頁的位元據        outStream.close();        inStream.close();        return data;    }}

 

通過HttpURLConnection類比post表單提交

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.