【发布时间】:2014-03-03 23:27:09
【问题描述】:
我正在编写一个向服务器发送请求的客户端应用程序。我已经使用 StartServer 批处理文件从 Windows 启动了我的服务器。现在,服务器期望的请求是 HTTP 请求。如果我从 Web 浏览器打开请求,服务器会看到并响应它,但我在尝试从 Java 发送请求时遇到了麻烦。
例如,命令"http://localhost/?command=reg&person=sophie" 从浏览器启动时工作正常,但从 Java 中返回 FileNotFound 异常。
代码如下:
public class Client {
private Socket clientSocket;
private final int PORT_NUMBER;
private final String HOST_NAME;
private PrintWriter writer;
private BufferedReader reader;
public Client(int PORT_NUMBER, String HOST_NAME){
this.PORT_NUMBER = PORT_NUMBER;
this.HOST_NAME = HOST_NAME;
try {
clientSocket = new Socket(HOST_NAME, PORT_NUMBER);
writer = new PrintWriter(clientSocket.getOutputStream(), true);
reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println("Error creating socket!");
}
}
public void registerPerson(String personName) throws IOException{
URL url = new URL("http://localhost/?command=reg&person=sophie");
InputStream in = new BufferedInputStream(url.openStream());
Scanner sc = new Scanner(in);
sc.nextLine();
}
InputStream in = new BufferedInputStream(url.openStream()); 这一行返回一个 FileNotFound 异常。对此有何建议?
【问题讨论】: