0

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 エラーが発生します。

前もって感謝します。

4

1 に答える 1

0

HttpRequestオブジェクトdataに属性があるとは思いません。を探しているかもしれません。raw_post_data

于 2010-08-09T19:16:32.613 に答える