2017-05-19 8 views
-1

を使用している間、私は画像PythonのソケットエラーHTTP

enter image description here

に、以下に示す簡単なコードを記述しようとしていますし、私は

enter image description here

あなたが聞かせてもらえ以下のエラーが出ます私はなぜ私はエラーとそれを修正する方法を取得している知っている?

+0

_properlyフォーマットさtext_ようなコードを投稿してください。また、このリクエストは実際には無効です。スペックをお読みください。これはソケットエラーBTWではなくHTTPであるため、タイトルが誤解を招くことがあります。 – ForceBru

答えて

1

あなたのHTTPリクエストは、いくつかの方法で間違っている:

  1. これらは\r\n、ない/n/nでなければなりません。 \r\nは、キャリッジリターンと改行のエスケープシーケンスで、文字列リテラルに書き込むことができます。 GET http://www.py4inf.com/code/romeo.txtを送信

    GET http://www.py4inf.com/code/romeo.txt HTTP/1.0/n/n 
                   ^^^^ 
    
  2. お使いのブラウザで次のリンクを開くようなものです:あなたが代わりにGET /code/romeo.txt

  3. を送りたいあなたはHostヘッダが欠落している

    http://www.py4inf.com/http://www.py4inf.com/code/romeo.txt 
    

    ので、ほとんどのWebサーバ単一のサーバーが複数のWebサイトをホストする可能性があるため、応答しない可能性があります。

  4. \r\nでHTTPリクエストを終了する必要があります。正しい要求は次のようになり

mysock.send('GET /code/romeo.txt HTTP/1.0\r\n') 
mysock.send('Host: www.py4inf.com\r\n') 
mysock.send('\r\n') 
+0

助けてくれてありがとう...上記の変更が働いた。しかし、私は質問がある、私はすでに私のソケットを 'www.py4inf.com'に接続して、再びホスト名を与える必要がありますか? –

+0

@akashrai: 'www.py4inf.com'は' 74.208.236.248'に解決されました。そのIPアドレスのウェブサーバは何百ものウェブサイトをホストすることができるので、リクエストを送る*ウェブサイトを指定したことがないので、サーバに接続して 'GET /'を送信するだけではあいまいです。 – Blender

関連する問題