this questionからこのコードを試してみます。ちょうどstackoverflow.com
を要求するとき、それは正しい返答を与えますが、私がhttps://stackoverflow.com/questions/10673684/send-http-request-manually-via-socket
を試してみると、HTTP/1.1 400 Bad Request
を返します。この問題の原因は何ですか?JavaソケットがHTTP/1.1 400不正リクエストを取得する
私は上記のリンクから得た作業コードを使用して、サーバーから正しい応答を得ています。
Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.println("GET/HTTP/1.1");
pw.println("Host: stackoverflow.com");
pw.println("");
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String t;
while ((t = br.readLine()) != null) {
System.out.println(t);
}
br.close();
は
Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.println("GET/HTTP/1.1");
pw.println("Host: https://stackoverflow.com/questions/10673684/send-http-request-manually-via-socket");
pw.println("");
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String t;
while ((t = br.readLine()) != null) {
System.out.println(t);
}
はその後応答がHTTP/1.1 400 Bad Request
です...次のように変更しようとしました。
P.S.私は、httpライブラリを使用する予定はありません。
ホストは作業コードのようにしておくべきですが、ホストの上の行を 'GET/questions/10673684/send-http-request-hand-via-socket HTTP/1.1'に変更する必要があります – Alex
@Alexそのコメントを回答として入れてください。 – tddmonkey
こんにちは@Alex。あなたが正しいです。どうもありがとうございます。あなたが答えを出すなら、私はそれに印をつけます。 – beginner