HTTP HTTP POST HTTP MIME POST # # Server-side HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake swsclose Connection: close Content-Type: text/html hello HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake swsclose Connection: close Content-Type: text/html hello HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Server: test-server/fake swsclose Connection: close Content-Type: text/html hello # Client-side Mime http # tool is what to use instead of 'curl' lib%TESTNUMBER HTTP multi-part chunked mimepost using read callback for the file part http://%HOSTIP:%HTTPPORT/%TESTNUMBER # # Verify data after 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 Host: %HOSTIP:%HTTPPORT Accept: */* Transfer-Encoding: chunked Content-Type: multipart/form-data; boundary=---------------------------- Expect: 100-continue 7c ------------------------------ Content-Disposition: form-data; name="sendfile"; filename="postit2.c" d 1 u 1 m 1 m 1 y 1 6b ------------------------------ Content-Disposition: form-data; name="callbackdata" 1 d 1 u 1 m 1 m 1 y 1 1b2 ------------------------------ Content-Disposition: form-data; name="filename" postit2.c ------------------------------ Content-Disposition: form-data; name="submit" send ------------------------------ Content-Disposition: form-data; name="somename"; filename="somefile.txt" Content-Type: text/plain blah blah -------------------------------- 0 POST /%TESTNUMBER HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* Transfer-Encoding: chunked Content-Type: multipart/form-data; boundary=---------------------------- Expect: 100-continue 8a ------------------------------ Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2" d 1 u 1 m 1 m 1 y 1 6b ------------------------------ Content-Disposition: form-data; name="callbackdata" 1 d 1 u 1 m 1 m 1 y 1 1b2 ------------------------------ Content-Disposition: form-data; name="filename" postit2.c ------------------------------ Content-Disposition: form-data; name="submit" send ------------------------------ Content-Disposition: form-data; name="somename"; filename="somefile.txt" Content-Type: text/plain blah blah -------------------------------- 0