Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 365|回复: 0

[网络编程学习]用Socket发送http请求

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-30 00:00:03 | 显示全部楼层 |阅读模式
    一、发送Get请求
    1. import java.net.*;
    2. import java.io.*;
    3. public class URLSender {  
    4.   /**     * @param args */
    5. public static void main(String[] args) throws IOException {
    6.         try {
    7.            Socket socket = new Socket("www.nwu.edu.cn", 80);
    8.            boolean autoflush = true;
    9.            PrintWriter out = new PrintWriter(socket.getOutputStream(), autoflush);
    10.            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    11.             //send an HTTP request to the web server
    12.            out.println("GET / HTTP/1.1");
    13.            out.println("Host: nwu.edu.cn");
    14.            out.println("Connection: Close");
    15.            out.println();
    16.            //read the response        
    17.            boolean loop = true;
    18.            StringBuffer sb = new StringBuffer(8096);
    19.            while (loop) {
    20.               if (in.ready()) {
    21.                 int i = 0;
    22.                 while (i != -1) {
    23.                     i = in.read();
    24.                     sb.append((char) i);
    25.                 }
    26.                 loop = false;
    27.             }
    28.            //Thread.currentThread().sleep(50);  
    29.           }  
    30.           //display the response to the out console  
    31.           System.out.println(sb.toString());
    32.           socket.close();
    33.        } catch (UnknownHostException e) {
    34.             System.err.println("Don"t know about host: Victest.");
    35.             System.exit(1);
    36.        } catch (IOException e) {
    37.            System.err.println("Couldn"t get I/O for " + "the connection to: Victest.");  
    38.            System.exit(1);
    39.        }
    40.   }
    41. }
    复制代码
    2、用Socket发送一个POST请求

         try {
             // Construct data
             String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
             data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
         
             // Create a socket to the host
             String hostname = "hostname.com";
             int port = 80;
             InetAddress addr = InetAddress.getByName(hostname);
             Socket socket = new Socket(addr, port);
         
             // Send header
             String path = "/Servlet/SomeServlet";
             BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
             wr.write("POST "+path+" HTTP/1.0
    ");
             wr.write("Content-Length: "+data.length()+"
    ");
             wr.write("Content-Type: application/x-www-form-urlencoded
    ");
             wr.write("
    ");
         
             // Send data
             wr.write(data);
             wr.flush();
         
             // Get response
             BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             String line;
             while ((line = rd.readLine()) != null) {
                 // Process line...
             }
             wr.close();
             rd.close();
         } catch (Exception e) {
         }

    源码下载:http://file.javaxxz.com/2014/10/30/000002328.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 21:59 , Processed in 0.295504 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表