1 週間前に django-piston を使用していましたが、最近は Web サービスを呼び出すことができません。以下は簡単な例です。コンテンツ タイプがある場合は「はい」を返し、コンテンツ タイプが null の場合は「いいえ」を返す「テスト」サービスがあります。POST を実行し、「data = request.data」を介してパラメーターを解析しようとすると、HTTP 500 エラーが発生するため、これを行いました。コンテンツ タイプが null であるため、request.data を実行できないと思いますか?
だから、ここに私の単純なWebサービスがあります:
class testHandler(BaseHandler):
def create(self, request):
if request.content_type:
return 'yes'
else:
data = request.data
return 'no'
urls.py ファイルは次のとおりです。
class CsrfExemptResource( Resource ):
def __init__( self, handler, authentication = None ):
super( CsrfExemptResource, self ).__init__( handler, authentication )
self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True )
controller_handler = CsrfExemptResource(controllerHandler)
test_handler = CsrfExemptResource(testHandler)
urlpatterns = patterns('',
url(r'^controller/', controller_handler),
url(r'^test/', test_handler),
)
最後に、サービスを呼び出すために Python ターミナルから実行するコードは次のとおりです。
params = urllib.urlencode({'value':'someValue'})
req = urllib2.Request("http://127.0.0.1/cindy/api/test/", params)
result = urllib2.urlopen(req).read()
そのため、'result' は常に no を返し、'request.data' という行をサービスに入れると、HTTP 500 エラーが発生します。
前もって感謝します。