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 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%CR Host: %HOSTIP:%HTTPPORT%CR Accept: */*%CR Content-Length: 676%CR Content-Type: multipart/form-data; boundary=----------------------------%CR %CR ------------------------------%CR Content-Disposition: form-data; name="sendfile"; filename="postit2.c"%CR %CR dummy %CR ------------------------------%CR Content-Disposition: form-data; name="callbackdata"%CR %CR dummy %CR ------------------------------%CR Content-Disposition: form-data; name="filename"%CR %CR postit2.c%CR ------------------------------%CR Content-Disposition: form-data; name="submit"%CR %CR send%CR ------------------------------%CR Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR Content-Type: text/plain%CR %CR blah blah%CR --------------------------------%CR POST /%TESTNUMBER HTTP/1.1%CR Host: %HOSTIP:%HTTPPORT%CR Accept: */*%CR Content-Length: 690%CR Content-Type: multipart/form-data; boundary=----------------------------%CR %CR ------------------------------%CR Content-Disposition: form-data; name="sendfile alternative"; filename="filename 2 "%CR %CR dummy %CR ------------------------------%CR Content-Disposition: form-data; name="callbackdata"%CR %CR dummy %CR ------------------------------%CR Content-Disposition: form-data; name="filename"%CR %CR postit2.c%CR ------------------------------%CR Content-Disposition: form-data; name="submit"%CR %CR send%CR ------------------------------%CR Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR Content-Type: text/plain%CR %CR blah blah%CR --------------------------------%CR