2016-05-01 20 views
0

まず読んでいただきありがとうございます!socket.send()のHTTP GETリクエストに変数をパックする方法 - Python 2.7

第2オフはい回答を見つけようとしました! :)おそらく私は私の問題を記述するために適切な言葉を使用していないので、私はそれを見つけられていないが、それは私が今それを把握しようとしてきた約4時間されていると私は少し手の込んだそれを自分でまとめてください。

私はプログラミングに非常に慣れています。 Pythonは私の最初の言語です。私は3番目のPythonコースに参加しています。ソケットライブラリを作成し、GETを使って情報を受け取るように、ソケットライブラリ(urllibライブラリではなく、私はそれを行う方法を知っています)を使うという課題があります。問題は、プログラムが問題のURLに対して生の入力を取る必要があることです。

私はそれ以外の方法を望んでいますが、HTTPメッセージに要求されたドキュメントパスを含めるために、私の "GET"リクエストを使っているはずの構文を知る必要があります。

mysock.send('GET (url) HTTP/1.0\n\n') 
mysock.send(('GET (url) HTTP:/1.0\n\n')) 
mysock.send(('GET (url) HTTP:/1.0\n\n')) 
mysock.send("GET (url) HTTP/1.0\n\n") 
mysock.send(("'GET' (url) HTTP:/1.0\n\n")) 
mysock.send(("'GET' (url) 'HTTP:/1.0\n\n'")) 

と:

私は(笑明らかではないすべて一緒に)試みた

基本的に上記(((((」 '' の組み合わせは、上記の他のすべての構成。

私も試してみました:

が最初に 'URL' の変数を使用して文字列を-Creating、その後mysock.send(文字列) 内部でそれを含めて - ここでも私のユーザー入力を参照するのに%rを使用しました(基本的に%G HTTP/1.0 \ n \ n '%URLを取得します)

私は質問を読んでいますここでは、他のプログラミングのウェブサイト、本の全体の章とオンラインでの講義/メモ、私はソケットライブラリと.send()に関する記事とGETリクエストに関する記事を読んだが、明らかに何かが欠けている。彼らはurllibを使用することができ、私はそれらを非難しない場合、ほとんどのソケットライブラリを使用しないようだ!

は大学から

答えて

0

誰かがurl変数がGET構文と連結し、その後.send(concatenatedvariable)で呼び出すことができます文字列変数に代入できることを私に戻って投稿...ありがとうございました - 私はそれを試していると言いましたが、GETには「GET」という単語の後にスペースが必要ですが、もちろん連結するにはスペースを含まず、それを吹き飛ばしていました。他の誰かが知りたい場合:

0

FYI:完全に準化されたURLは、HTTP/1.1要求でのみ許可されます。しかし、HTTP/1.1ではHostヘッダを設定する必要があるため、標準ではありません。関連する読書はRFC 7230, sec. 3.1.1で、おそらくRFC 3986でした。パラメータの構文は、主にCGI形式から借用されています。しかし、それは決して強制されません。一言で言えば、一緒に入れ、すべてがワイヤ上で次のようになります。

GET /path?param1=value1&param2=value2 HTTP/1.1 
Host: example.com 

を最後の注意として:HTTPの行区切り文字はCRLF(\r\n)です。堅牢性のために、簡単な改行も許容されますが推奨されません。

関連する問題