首页 > 代码库 > 通过HttpURLConnection模拟post表单提交
通过HttpURLConnection模拟post表单提交
通过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 = http://www.mamicode.com/outStream.toByteArray();//网页的二进制数据 outStream.close(); inStream.close(); return data; }}
通过HttpURLConnection模拟post表单提交
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。