0

getリクエストをWebサイトに送信しようとしましたが、常にエラー400の不正なリクエストが返されます。getリクエストが間違っているのではないかと思います。ここにあります;

socketOut.println("GET " + req.url + " HTTP/1.1\r\n");
socketOut.flush();

URLConnectionを使用してそれを行うことができますが、2番目の方法としてソケットを使用しています。だから私はこのリクエストとreadinngバイトを送信しています。私はそれがウェブサイトから私に何を返すかをチェックしました、そしてもちろんそれは悪い要求エラーページを返します。なにか提案を?ちなみに、req.urlは/asd.htmlのようなものではなく、このwww.stackoverflow.com/asd.htmlのようなURLを返します

4

1 に答える 1

1

println\n必要になる可能性がある代わりに、改行として使用する場合\r\nがあります。\r\n直接使ってみてください。

HTTP1.1にはHostヘッダーが必要です。試す:

socketOut.print("GET " + req.url + " HTTP/1.0\r\n\r\n");

また:

socketOut.print("GET " + req.url + " HTTP/1.1\r\n");
socketOut.print("Host: " + req.host + "\r\n");
socketOut.print("\r\n");
于 2012-10-18T18:29:33.597 に答える