尝试用TDP编程套接字,在http客户端中有一些错误,我找不到,当我运行它时会带来错误。
package tcp.client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import edu.uoc.dpcs.lsim.logger.LoggerManager.Level;
import lsim.library.api.LSimLogger;
public class HTTPclient {
public HTTPclient() {
}
public String head(String http_server_address, int http_server_port){
LSimLogger.log(Level.INFO, "start HTTPclient.head ");
LSimLogger.log(Level.INFO, "HTTP server_address: " + http_server_address);
LSimLogger.log(Level.INFO, "HTTP server_port: " + http_server_port);
/* Complete code */
String peticio = "HEAD /xai/xai.html HTTP/1.1\r\nAccept\r\n";
LSimLogger.log(Level.INFO, peticio);
String resposta = "";
Socket socket;
try {
socket = new Socket(http_server_address, http_server_port);
LSimLogger.log(Level.INFO, "Socket created");
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
writer.println(peticio);
LSimLogger.log(Level.INFO, "Request sent");
BufferedReader inputFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String linia ;
while ((linia = inputFromServer.readLine()) != null) {
resposta += linia + "\r\n";
LSimLogger.log(Level.TRACE, linia);
}
socket.close();
LSimLogger.log(Level.INFO, "Response: " + resposta);
} catch (SocketException e) {
LSimLogger.log(Level.FATAL, e.getMessage());
e.printStackTrace();
} catch (UnknownHostException e) {
LSimLogger.log(Level.FATAL, e.getMessage());
e.printStackTrace();
} catch (IOException e) {
LSimLogger.log(Level.FATAL, e.getMessage());
e.printStackTrace();
}
return resposta;
}
}
代码已经完成了,根据测试问题,我只需要在字符串peticio的地方编写代码。
错误消息。
HTTP/1.1 400错误请求
有什么帮助吗?
1条答案
按热度按时间cngwdvgl1#
消息的行尾必须硬编码或由打印机添加
或者
或者