Mercurial > forge
changeset 11244:7a4d00ef25a8 octave-forge
POST support
author | abarth93 |
---|---|
date | Mon, 19 Nov 2012 20:49:15 +0000 |
parents | cf9bc1303f12 |
children | d4f697a0ce8e |
files | extra/cgi/inst/@cgi/cgi.m |
diffstat | 1 files changed, 17 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/cgi/inst/@cgi/cgi.m Mon Nov 19 20:46:46 2012 +0000 +++ b/extra/cgi/inst/@cgi/cgi.m Mon Nov 19 20:49:15 2012 +0000 @@ -11,11 +11,27 @@ function retval = cgi() -self.query_string = getenv('QUERY_STRING'); +self.request_method = getenv('REQUEST_METHOD'); self.params = {}; self.vals = {}; +if strcmp(self.request_method,'GET') || ... + strcmp(self.request_method,'HEAD') + % GET/HEAD request + self.query_string = getenv('QUERY_STRING'); +elseif strcmp(self.request_method,'POST') + % POST request + content_type = getenv('CONTENT_TYPE'); + content_length = str2double(getenv('CONTENT_LENGTH')); + assert(content_type,'application/x-www-form-urlencoded'); + self.query_string = fscanf(stdin,'%c',content_length); + %fprintf(stderr,'query_string "%s" "%s" "%d"',self.query_string,content_type,content_length); +else + error('unsupported requested method',self.request_method); +end + + % should also split at ";" p = strsplit(self.query_string,'&');