| On this page | 
Note
このクラスは、hou.WebServerRequestとhou.webServer.Requestのどちらを使用してもアクセス可能ですが、
    hou.webServer.Requestを使用する方が望ましいです。
このオブジェクトは、クライアントリクエストからの情報用のコンテナとして登録済みのURLハンドラー関数に渡されます。
- 
        
        URL引数の辞書を取得するには、 request.GET()をコールします。
- 
        
        (POSTリクエスト内の)フォーム引数の辞書を取得するには、 request.POST()をコールします。
- 
        
        リクエストのフルパスを取得するには、 request.path()をコールします。
- 
        
        リクエストがファイルアップロードの場合、 request.files()を使用することで、ファイル名とファイルの内容がマッピングされた辞書を取得することができます。
アップロードのサンプル ¶
import tempfile import hou @hou.webServer.urlHandler("/blur_image") def blur_image(request): if request.method() == "GET": return hou.webServer.Response(''' <p>Upload an image</p> <form method="POST" enctype="multipart/form-data"> <input type="file" name="image_file"> <input type="submit"> </form> ''') if request.method() != "POST": return hou.webServer.notFoundResponse(request) image_file = request.files().get("image_file") if image_file is None: return hou.webServer.errorResponse(request, "No image was posted", 422) image_file.saveToDisk() # COPネットワークを使用して、画像を読み込んで、その画像にブラーをかけて、それを一時出力ファイルに書き出します。 cop2net = hou.node("/img").createNode("img") file_cop = cop2net.createNode("file") file_cop.parm("filename1").set(image_file.temporaryFilePath()) blur_cop = cop2net.createNode("blur") blur_cop.setFirstInput(file_cop) blur_cop.parm("blursize").set(10) rop = cop2net.createNode("rop_comp") rop.setFirstInput(blur_cop) rop.parmTuple("f").set((1, 1, 1)) temp_output_file = tempfile.mkstemp(".jpg")[1] rop.parm("copoutput").set(temp_output_file) rop.render() cop2net.destroy() return hou.webServer.fileResponse(temp_output_file, delete_file=True) hou.webServer.run(8008, True)
メソッド ¶
method()
  → str
        
リクエストで使用されているHTTPメソッド(例えば、"GET", "POST", "PATCH"など)を返します。
path()
  → str
        
サーバーにリクエストされたパスを返します。
    例えば、URIが"http://127.0.0.1:8008/asset/torus?divisions=20&tx=2"の場合、そのパスは"/asset/torus"となります。
pathWithQueryString()
  → str
        
サーバーにリクエストされた(照会文字列の部分を含んだ)パスを返します。
    例えば、URIが"http://127.0.0.1:8008/asset/torus?divisions=20&tx=2"の場合、その結果は"/asset/torus?divisions=20&tx=2"となります。
Note
このサンプルでの照会文字列の内容は、request.GET()["divisions"]やrequest.GET()["tx"]を介してアクセスすることも可能です。
queryString()
  → str
        
リクエストの(先頭の?を除外した)照会文字列を返します。
    例えば、URIが"http://127.0.0.1:8008/asset/torus?divisions=20&tx=2"の場合、その結果は"divisions=20&tx=2"となります。
    URIが"http://127.0.0.1:8008/asset/torus"の場合、その結果は""となります。
absoluteURI(location=None)
  → str
        
locationがNoneの場合、現在のリクエストの送信に使用されたフルURIを返します。
    それ以外の場合、locationにサーバー上のパスを含んだ文字列を指定すると、そのパスのフルURIを返します。
このメソッドは、hou.webServer.redirectのLocationヘッダの構築に使用します。
isSecure()
  → bool
        
httpの代わりにhttpsを使用してリクエストが送信されていればTrueを返します。
headers()
  → dict
 of str
 to str
        
リクエストと一緒に用意されたヘッダの辞書を返します。
このメソッドはコールする度に辞書の新しいコピーを生成するので、必要以上にコールしないことを推奨します。
Note
cookiesメソッドは、Cookieヘッダの内容を解析します。
Webサーバーは認証に対応していませんが、例えば、Authorizationヘッダの内容を検査するデコレータを作成することで認証を追加することができます。
cookies()
  → dict
 of str
 to str
        
リクエストで送信されたCookieヘッダから解析されたクッキーデータを返します。
このメソッドはコールする度に辞書の新しいコピーを生成するので、必要以上にコールしないことを推奨します。
GET()
  → dict
 of str
 to str
        
リクエストのURLに用意されている解析済みの照会文字列変数の辞書を返します。
このメソッドはコールする度に辞書の新しいコピーを生成するので、必要以上にコールしないことを推奨します。
同じキーに複数のGET値を対応させたいのであれば、Pythonのparse_qs関数を使用して照会文字列を解析し、そこから複数のGET値を抽出すると良いでしょう。
try: from urllib.parse import parse_qs except Importerror: from urlparse import parse_qs `parse_qs(request.queryString())`
POST()
  → dict
 of str
 to str
        
リクエストのボディ内に用意されている解析済みの照会変数の辞書を返します。
    サーバーは、URLエンコードされた値とmultipart/form-dataエンコードされた値を受信することができます。
このメソッドはコールする度に辞書の新しいコピーを生成するので、必要以上にコールしないことを推奨します。
Note
multipart/form-data形式のデータ内のファイルは、この辞書には含まれず、代わりにfilesメソッドを介してアクセスすることができます。
files()
  → dict
 of str
 to hou.webServer.UploadedFile
        
multipart/form-data形式のデータで渡されたファイルアップロードの辞書を返します。
    これらのファイルアップロードのサイズが大きいのであれば、メモリに保存するよりもディスクに保存した方が良いです。
    詳細は、hou.webServer.UploadedFileを参照してください。
このメソッドはコールする度に辞書の新しいコピーを生成するので、必要以上にコールしないことを推奨します。
port()
  → int
        
リクエストの送信元のサーバーポートを返します。
body()
  → str
        
リクエストがまったく解析されていないままのボディを返します。
このメソッドはコールする度に辞書の新しいコピーを生成するので、必要以上にコールしないことを推奨します。
contentLength()
  → str
        
Content-Lengthヘッダを返します。 Content-Lengthヘッダが存在しなかった場合は、空っぽの文字列が返されます。 これは、直接Content-Lengthヘッダを調べるための便利メソッドとして用意されています。
contentType()
  → str
        
Content-Typeヘッダを返します。 Content-Typeヘッダが存在しなかった場合は、空っぽの文字列が返されます。 これは、直接Content-Typeヘッダを調べるための便利メソッドとして用意されています。
host()
  → str
        
リクエストのHostヘッダ内で見つかったホストを返します。 何もホストが見つからなければ、空っぽの文字列が返されます。
protocol()
  → str
        
リクエストに使用されたプロトコルを返します。
    例えば、http1.1リクエストの場合だとHTTP/1.1が返されます。