2017-01-10 24 views
0

プロトコルエラー504ゲートウェイのタイムアウトをシミュレートしようとしています。これは私のサーバーコードです。 add()メソッドで504エラーを返したいと思います。Python Simulate 504ゲートウェイタイムアウトエラー

from SimpleXMLRPCServer import SimpleXMLRPCServer 

def add(x,y): 
    return x+y 

# A simple server with simple arithmetic functions 
server = SimpleXMLRPCServer(("localhost", 8000)) 
print "Listening on port 8000..." 
server.register_multicall_functions() 
server.register_function(add, 'add') 
server.serve_forever() 

ご利用いただきありがとうございます。ここで

+0

どのフレームワークですか? DJango?フラスコ?一般的に必要なことは、 'return HttpResponse(b'error '、504)'などのように、レスポンスに終了コードを追加するだけです。 –

+0

こんにちはフレームワーク、ちょうど "SimpleXMLRPCServerからインポートSimpleXMLRPCServer" – aw88

+0

すべての権利。だから、なぜHTTPの動作をシミュレートしますか?好奇心。 –

答えて

0

あなたはFlaskで504エラーをシミュレートすることができる方法です。

from flask import Flask, abort 

app = Flask(__name__) 


@app.route("/") 
def fake_gateway_timeout_error(): 
    abort(504) 


if __name__ == "__main__": 
    app.run(port=8000, debug=True) 

ブラウザでhttp://127.0.0.1:8000/をしようとした場合、あなたが買ってあげる:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<title>504 Gateway Timeout</title> 
<h1>Gateway Timeout</h1> 
<p>The connection to an upstream server timed out.</p> 

= 504終了ステータスで。

もちろん、別のメッセージ(HTMLではなくテキスト)を使用する場合は、次のように試してみてください。

@app.route("/") 
def fake_gateway_timeout_error(): 
    return b'504 Gateway Timeout', 504 
+0

こんにちは、私はあなたの解決策を試みましたが、405エラーメソッドが許可されていない、504エラーを強制する方法 – aw88

+0

デフォルトではGETメソッドしか受け入れません。 'app.route'メソッド/デコレータでそれを変更することができます。正しく覚えていれば、 'methods'パラメータがあります。ドキュメントを確認してください。 –

+0

ねえ、それは動作します! f = urllib2.urlopen( "http://127.0.0.1:8000/").read() print fしかし、 "504 Gateway Timeout"メッセージにアクセスするにはどうしたらいいですか?私はそれを "あなたは504のゲートウェイのタイムアウトが発生したばかり"に変更する必要があった場合、 – aw88

関連する問題