JAVA代码:通过Socket执行HTTP的POST方法

  1. package net.java2000.net;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStreamWriter;
  6. import java.net.InetAddress;
  7. import java.net.Socket;
  8. import java.net.URLEncoder;
  9. /**
  10.  * 使用 Socket 模拟HTTP的POST提交。
  11.  * 
  12.  * @author 赵学庆,Java世纪网(java2000.net)
  13.  * 
  14.  */
  15. public class SocketHttpPost {
  16.   public static void main(String[] args) {
  17.     try {
  18.       // 提交的数据
  19.       String data = URLEncoder.encode("name""UTF-8") + "="
  20.           + URLEncoder.encode("老紫竹""UTF-8");
  21.       data += "&" + URLEncoder.encode("message""UTF-8") + "="
  22.           + URLEncoder.encode("欢迎光临JAVA世纪网""UTF-8");
  23.       // 建立连接
  24.       String hostname = "www.java2000.net";
  25.       int port = 80;
  26.       InetAddress addr = InetAddress.getByName(hostname);
  27.       Socket socket = new Socket(addr, port);
  28.       // 发送数据头
  29.       String path = "/test.jsp";
  30.       BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),
  31.           "UTF8"));
  32.       wr.write("POST " + path + " HTTP/1.0/r/n");
  33.       wr.write("Host: <a target="_blank" href="www.java2000.net">www.java2000.net</a>/n");
  34.       wr.write("Content-Length: " + data.length() + "/r/n");
  35.       wr.write("Content-Type: application/x-www-form-urlencoded/r/n");
  36.       wr.write("/r/n"); // 以空行作为分割
  37.       // 发送数据
  38.       wr.write(data);
  39.       wr.flush();
  40.       // 读取返回信息
  41.       BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream(),
  42.           "UTF-8"));
  43.       String line;
  44.       while ((line = rd.readLine()) != null) {
  45.         System.out.println(line);
  46.       }
  47.       wr.close();
  48.       rd.close();
  49.     } catch (Exception e) {
  50.     }
  51.   }
  52. }
 
运行结果
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 type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值