Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

google app engine: 405 method not allowed

What are the causes for the the error NetworkError: 405 Method Not Allowed

I was using a web service and all of a sudden it started returning that error. its not maintained so it will not get fixed. I am curious if i can do something about this.

The offending web service url is: http://jsonpdb.appspot.com/add

like image 880
mkoryak Avatar asked Nov 03 '11 03:11

mkoryak


2 Answers

The method (GET/POST/HEAD etc) you're trying to use on that URL is not supported by the app. Are you sure the API expects you to use the method you're using on that URL?

like image 136
Nick Johnson Avatar answered Nov 15 '22 05:11

Nick Johnson


Most common cause is using the wrong 'get' vs 'post' for the response. Verify what's being sent and that the correct method appears in the your handler.

class MainHander(webapp.RequestHandler):
    def get(self):
        ...
    def post(self):
        ....
    def delete(self):
        ....

Another common issue is having the main dispatch section parse urls, but then not supply them in the get/post/delete

def main():
    application = webapp.WSGIApplication(
        [   (r'/upload/([^/]+)?/?', UploadFileHandler),

The regex there has () in it... that's a parameter in the url path like: /upload/filename

class UploadFileHandler(webapp.RequestHandler):
    def post(self, filename):
        ...

Supplying a link to code would be helpful.

like image 40
TrophyGeek Avatar answered Nov 15 '22 03:11

TrophyGeek