HTTP HTTP POST FORM # Server-side HTTP/1.1 301 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake swsclose Connection: close Content-Type: text/html Location: /%TESTNUMBER0002 hello HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Length: 6 Connection: close Content-Type: text/html -foo- # Client-side form-api http # tool is what to use instead of 'curl' lib%TESTNUMBER HTTP formpost using form API - with redirect and re-POST Some data from stdin http://%HOSTIP:%HTTPPORT/%TESTNUMBER %LOGDIR/test%TESTNUMBER.filedata This is data from a file. # Verify data bbter the test has been "shot" s/^--------------------------[A-Za-z0-9]*/------------------------------/ s/boundary=------------------------[A-Za-z0-9]*/boundary=----------------------------/ # Note that the stripping above removes 12 bytes from every occurrence of the # boundary string and since 5 of them are in the body contents, we see # (5*12) == 60 bytes less POST /%TESTNUMBER HTTP/1.1%CR Host: %HOSTIP:%HTTPPORT%CR Accept: */*%CR Transfer-Encoding: chunked%CR Content-Type: multipart/form-data; boundary=----------------------------%CR Expect: 100-continue%CR %CR 385%CR ------------------------------%CR Content-Disposition: form-data; name="fieldname"%CR Content-Type: text/plain%CR X-customheader-1: Header 1 data%CR X-customheader-2: Header 2 data%CR %CR this is what we post to the silly web server%CR ------------------------------%CR Content-Disposition: form-data; name="fieldnam"%CR %CR uhis is what we post to the silly web serve%CR ------------------------------%CR Content-Disposition: form-data; name="multifile"%CR Content-Type: multipart/mixed; boundary=----------------------------%CR %CR ------------------------------%CR Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR Content-Type: application/octet-stream%CR %CR This is data from a file. %CR ------------------------------%CR Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR Content-Type: text/whatever%CR %CR %CR ab%CR This is data from a file. %CR ------------------------------%CR Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR Content-Type: text/whatever%CR %CR %CR bb%CR This is data from a file. %CR --------------------------------%CR %CR ------------------------------%CR Content-Disposition: form-data; name="filecontents"%CR %CR %CR 11b%CR This is data from a file. %CR ------------------------------%CR Content-Disposition: form-data; name="formlength"%CR %CR 1433%CR ------------------------------%CR Content-Disposition: form-data; name="standardinput"%CR Content-Type: application/octet-stream%CR %CR %CR 16%CR Some data from stdin %CR 36%CR %CR --------------------------------%CR %CR 0%CR %CR POST /%TESTNUMBER0002 HTTP/1.1%CR Host: %HOSTIP:%HTTPPORT%CR Accept: */*%CR Transfer-Encoding: chunked%CR Content-Type: multipart/form-data; boundary=----------------------------%CR Expect: 100-continue%CR %CR 385%CR ------------------------------%CR Content-Disposition: form-data; name="fieldname"%CR Content-Type: text/plain%CR X-customheader-1: Header 1 data%CR X-customheader-2: Header 2 data%CR %CR this is what we post to the silly web server%CR ------------------------------%CR Content-Disposition: form-data; name="fieldnam"%CR %CR uhis is what we post to the silly web serve%CR ------------------------------%CR Content-Disposition: form-data; name="multifile"%CR Content-Type: multipart/mixed; boundary=----------------------------%CR %CR ------------------------------%CR Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR Content-Type: application/octet-stream%CR %CR This is data from a file. %CR ------------------------------%CR Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR Content-Type: text/whatever%CR %CR %CR ab%CR This is data from a file. %CR ------------------------------%CR Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR Content-Type: text/whatever%CR %CR %CR bb%CR This is data from a file. %CR --------------------------------%CR %CR ------------------------------%CR Content-Disposition: form-data; name="filecontents"%CR %CR %CR 11b%CR This is data from a file. %CR ------------------------------%CR Content-Disposition: form-data; name="formlength"%CR %CR 1433%CR ------------------------------%CR Content-Disposition: form-data; name="standardinput"%CR Content-Type: application/octet-stream%CR %CR %CR 16%CR Some data from stdin %CR 36%CR %CR --------------------------------%CR %CR 0%CR %CR