How to parse the “request body” using python CGI?

2020-06-03 06:49发布

问题:

I just need to write a simple python CGI script to parse the contents of a POST request containing JSON. This is only test code so that I can test a client application until the actual server is ready (written by someone else).

I can read the cgi.FieldStorage() and dump the keys() but the request body containing the JSON is nowhere to be found.

I can also dump the os.environ() which provides lots of info except that I do not see a variable containing the request body.

Any input appreciated.

Chris

回答1:

If you're using CGI, just read data from stdin:

import sys
data = sys.stdin.read()


回答2:

notice that if you call cgi.FieldStorage() before in your code, you can't get the body data from stdin, because it just be read once.