- package net.java2000.net;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.net.InetAddress;
- import java.net.Socket;
- import java.net.URLEncoder;
- /**
- * 使用 Socket 模拟HTTP的POST提交。
- *
- * @author 赵学庆,Java世纪网(java2000.net)
- *
- */
- public class SocketHttpPost {
- public static void main(String[] args) {
- try {
- // 提交的数据
- String data = URLEncoder.encode("name", "UTF-8") + "="
- + URLEncoder.encode("老紫竹", "UTF-8");
- data += "&" + URLEncoder.encode("message", "UTF-8") + "="
- + URLEncoder.encode("欢迎光临JAVA世纪网", "UTF-8");
- // 建立连接
- String hostname = "www.java2000.net";
- int port = 80;
- InetAddress addr = InetAddress.getByName(hostname);
- Socket socket = new Socket(addr, port);
- // 发送数据头
- String path = "/test.jsp";
- BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),
- "UTF8"));
- wr.write("POST " + path + " HTTP/1.0\r\n");
- wr.write("Host: <a target="_blank" href="www.java2000.net">www.java2000.net</a>\n");
- wr.write("Content-Length: " + data.length() + "\r\n");
- wr.write("Content-Type: application/x-www-form-urlencoded\r\n");
- wr.write("\r\n"); // 以空行作为分割
- // 发送数据
- wr.write(data);
- wr.flush();
- // 读取返回信息
- BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream(),
- "UTF-8"));
- String line;
- while ((line = rd.readLine()) != null) {
- System.out.println(line);
- }
- wr.close();
- rd.close();
- } catch (Exception e) {
- }
- }
- }
运行结果
HTTP/1.1 200 OK
Date: Sun, 31 Aug 2008 00:39:46 GMT
Server: Apache/2.2.4 (Win32) mod_jk/1.2.26
Vary: Host,Accept-Encoding
Set-Cookie: JSESSIONID=2F417D101EEF54608D7115A109C4FC3C; Path=/
Content-Length: 333
Connection: close
Content-Type: text/html;charset=UTF-8
<!-- 测试页内容开始 -->
这里是JAVA世纪网,java2000.net。老紫竹欢迎你的光临。
本站以提供高质量的,验证过的JAVA代码,资料和项目为目标。
<!-- 测试页内容结束 -->
<!-- 提交来的数据开始-->
你好:老紫竹
欢迎光临JAVA世纪网
<!-- 提交来的数据结束-->
<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>