java socket发送http请求

public static void main(String[ ] args) throws UnknownHostException, IOException
    
     {
            String host = "127.0.0.1";
            int port = 8080;
            Socket socket = new Socket(host, port);
            
            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            
            StringBuffer sb = new StringBuffer();
            //请求的连接地址
            sb.append("POST /gaga/123.jsp HTTP/1.1\r\n")
               .append("Host:"+ host + "\r\n")
               .append("Content-Type:application/x-www-form-urlencoded\r\n")
               .append("Content-Length:11\r\n")            //11 这个数值是看底下内容的长度的 即多少个字符
               .append("\r\n")
               .append("id=01234567\r\n");                  //内容
     //       System.out.println(sb);
            out.write(sb.toString());
            out.flush();
            
            //打印响应
            String line = "";
            while((line = in.readLine()) != null)
                System.out.println(line);

        }

///

1、servlet

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 11
Date: Mon, 16 Jun 2014 14:38:12 GMT

huangliao

2、xxx.jsp

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=79689DEFF39F600F86F6DA27AF9BF767; Path=/gaga/; HttpOnly
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 16
Date: Mon, 16 Jun 2014 14:54:43 GMT

 
01234567

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要响应HTTP请求,需要使用Java中的ServerSocket类来监听端口,并接受来自客户端的连接请求。一旦连接被接受,就可以通过Socket对象获取输入和输出流,并读取客户端发送的请求信息,然后构造响应并发送回客户端。 以下是一个简单的例子: ```java import java.io.*; import java.net.*; public class HttpServer { public static void main(String[] args) throws Exception { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("Server started on port 8888"); while (true) { Socket socket = serverSocket.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line; while ((line = in.readLine()) != null) { if (line.isEmpty()) { break; // HTTP请求头部结束,开始读取请求体 } System.out.println(line); } PrintWriter out = new PrintWriter(socket.getOutputStream()); out.println("HTTP/1.1 200 OK"); out.println("Content-Type: text/html; charset=utf-8"); out.println(""); out.println("<html><body><h1>Hello, World!</h1></body></html>"); out.flush(); socket.close(); } } } ``` 这个简单的HTTP服务器会监听本地的8888端口并接受来自客户端的连接请求,然后读取请求信息并发送一个简单的HTML响应。当你在浏览器中访问 http://localhost:8888 ,你应该能看到 "Hello, World!" 字符串。 当然,这个例子非常简单,实际上HTTP协议比这个复杂的多。在实际应用中,你需要更全面地了解HTTP协议并编写更复杂的服务器端代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值