I have problem to retrieve query strings in webapp2 delete http method. I can not use self.request.get('my_query_string')
to get specific query string. How do you retrieve it from delete method?
In client, I have the the following javascript code to send http request:
function send_http(value1, value2) {
$.ajax({
type: 'DELETE',
url: '/path/to/my/handler'
data: {key1: value1, key2: value2}
});
}
In GAE webapp2, My handler is like following:
class MyHandler(webapp2.RequestHandler):
def post(self):
logging.debug('key1: %s' % self.request.get('key1')) # This is OK
logging.debug('key2: %s' % self.request.get('key2')) # This is OK
def put(self):
logging.debug('key1: %s' % self.request.get('key1')) # This is OK
logging.debug('key2: %s' % self.request.get('key2')) # This is OK
def delete(self):
logging.debug('key1: %s' % self.request.get('key1')) # This is NG
logging.debug('key2: %s' % self.request.get('key2')) # This is NG
logging.debug('body: %s' % self.request.body) # key1=value1&key2=value2
If client side changes the http method to POST
or PUT
, self.request.get()
works well. However, if client side use DELETE
method, self.request.get()
only return empty.
If I check self.request.body
, I can see all the query strings. Is there any convenient method for retrieving specific query string from delete method instead of parsing body myself?