[JAVA]使用HttpURLConnection进行POST方式提交
--sunfruit
用HttpURLConnection进行Post方式提交,下面给出一个例子
??? URL url = null;
??? HttpURLConnection httpurlconnection = null;
??? try
??? {
????? url = new URL("http://xxxx");
????? httpurlconnection = (HttpURLConnection) url.openConnection();
????? httpurlconnection.setDoOutput(true);
????? httpurlconnection.setRequestMethod("POST");
????? String username="username=02000001";
????? httpurlconnection.getOutputStream().write(username.getBytes());
????? httpurlconnection.getOutputStream().flush();
????? httpurlconnection.getOutputStream().close();
????? int code = httpurlconnection.getResponseCode();
????? System.out.println("code?? " + code);
??? }
??? catch(Exception e)
??? {
????? e.printStackTrace();
??? }
??? finally
??? {
????? if(httpurlconnection!=null)
??????? httpurlconnection.disconnect();
??? }
其中HttpURLConnection中的addRequestProperty方法,并不是用来添加Parameter 的,而是用来设置请求的头信息,比如:
?????? setRequestProperty("Content-type","text/html");
?????? setRequestProperty("Connection",?? "close");
?????? setRequestProperty("Content-Length",xxx);
当然如果不设置的话,可以走默认值,上面的例子中就没有进行相关设置,但是也可以正确执行
?
?
?
public class HttpConnectionPostTest {
??? public static void main(String[] args) throws Exception {
??? //设置代理,公司用的是代理上网
??? System.setProperty("proxySet", "true");
??????? System.setProperty("proxyHost", "172.31.1.246");
??????? System.setProperty("proxyPort", "8080");
??????? //读取http://marc.info/?l=ant-dev&r=1&w=2的html输出
??? URL url = new URL("http://marc.info/");
??? HttpURLConnection con = (HttpURLConnection) url.openConnection();
??? con.setDoOutput(true); // POST方式
??? con.setRequestMethod("POST");
??? OutputStream os = con.getOutputStream(); // 输出流,写数据
??? os.write("l=ant-dev&r=1&w=2".getBytes());
???
??? InputStream in = con.getInputStream(); // 读取结果
??? OutputStream out = new BufferedOutputStream(getOutputStream());
??? byte[] buf = new byte[2048];
??? int c = -1;
??? while ((c = in.read(buf)) != -1) {
??????? out.write(buf, 0, c);
??? }
??? out.flush();
??? out.close();
??? in.close();
??? }
???
??? private static OutputStream getOutputStream() throws Exception {
???????????? return new FileOutputStream(new File("connection.html"));
??? }
}