Robot フレームワークを使用して、いくつかの HTTP POST 関連のテストを自動化しています。HTTP POST を実行する関数を持つカスタム Python ライブラリを作成しました。次のようになります。
# This function will do a http post and return the json response
def Http_Post_using_python(json_dict,url):
post_data = json_dict.encode('utf-8')
headers = {}
headers['Content-Type'] = 'application/json'
h = httplib2.Http()
resp, content = h.request(url,'POST',post_data,headers)
return resp, content
Unicode 文字を使用していない限り、これは正常に機能します。変数に Unicode 文字json_dict
(たとえば、메시지) があると、次のエラーで失敗します。
UnicodeDecodeError: 'ascii' コーデックは位置 164 のバイト 0xeb をデコードできません: 序数が範囲外です (128)
Windows 7 で Python 2.7.3 を実行しています。関連する質問をいくつか見ましたが、問題を解決できませんでした。私はPythonとプログラミングが初めてなので、助けていただければ幸いです。
ありがとう。