gpt4 book ai didi

java - Web 浏览器命令行程序

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:10:10 25 4
gpt4 key购买 nike

我正在 Web 服务器上工作(已完成),我想我会制作我自己的基于文本的小型浏览器,唯一的问题是我实际上无法让浏览器读取响应。这是代码:

import java.io.*;
import java.net.*;

class client
{
static Socket socket = null;
static BufferedReader in = null;
static PrintWriter out = null;

public static void main(String args[])
{
int fromServer;
try
{
socket = new Socket("localhost", 8001);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter( new BufferedOutputStream(socket.getOutputStream()));
out.println("GET /Library/WebServer/Documents/index.html.en HTTP/1.0");
out.flush();
while ((fromServer = in.read()) != -1)
{
System.out.write(fromServer);
System.out.flush();
}

}
catch (UnknownHostException e)
{
System.out.println("Unknown host");
}
catch (IOException e)
{
System.out.println("IO error");
}
}
}

最佳答案

您还没有完全完成请求。您需要两个换行符,否则看起来您仍在写出请求 header 。

添加一个额外的 println 并且您可能没问题,尽管 HTTP 指定 CRLF 作为行尾,我实际上会使用 print 而不是而不是 println,并明确地将 \r\n 放在每一行的末尾。

(我个人也会避免使用 PrintWriter - 吞噬异常是不好的...)

关于java - Web 浏览器命令行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18044301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com