在实际的开发中,经常会使用的使用
package com.csyor.test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import .HttpURLConnection;
import .URL;
/**
*
* java模拟表单提交请求远端URL
*
* @author Csyor
*
*/
public class HttpRequest {
private String requestURL = "url";// 请求的URL
private String param1 = "param1";// 参数1
private String param2 = "param2";// 参数2
private String param3 = "param3";// 参数3
// 更多参数...
public String request() throws UnsupportedEncodingException {
String result = null;// 返回结果
InputStream inStream = null;
ByteArrayOutputStream outStream = null;
byte[] data = null;
try {
URL url = new URL(requestURL);// 请求的URL
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");// 提交模式为post
conn.setDoOutput(true);// 是否输入参数
// 下面进行拼接参数
StringBuffer params = new StringBuffer();
// 表单参数与get形式一样
params.append("param1").append("=").append(param1.trim()).append("&").
append("param2").append("=").append(param2.trim()).append("&").
append("param3").append("=").append(param3.trim());
// 可以添加更的参数,每个参数之间使用“&”分开
byte[] bypes = params.toString().getBytes();// 把参数转换成二进制
conn.getOutputStream().write(bypes);// 输入参数
inStream = conn.getInputStream();
outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
data = outStream.toByteArray();// 网页的二进制数据
result = new String(data, "utf-8");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
outStream.close();
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
}