From 7c34cf235bfc187253b2808f897377e22d1c5ec3 Mon Sep 17 00:00:00 2001 From: Cristian Re <recris@amazon.com> Date: Tue, 13 Aug 2019 11:29:16 -0300 Subject: [PATCH 1/2] implement client with bash --- multipart/README.md | 15 ++++++++------- multipart/client.py | 36 ------------------------------------ multipart/client.sh | 11 +++++++++++ multipart/example.png | 5 +++++ 4 files changed, 24 insertions(+), 43 deletions(-) delete mode 100644 multipart/client.py create mode 100755 multipart/client.sh create mode 100644 multipart/example.png diff --git a/multipart/README.md b/multipart/README.md index 0da2dbf8..5eb57b38 100644 --- a/multipart/README.md +++ b/multipart/README.md @@ -12,13 +12,14 @@ cargo run (or ``cargo watch -x run``) # Started http server: 127.0.0.1:8080 ``` -### client +### browser -- ``pip install aiohttp`` -- ``python client.py`` +- go to ``http://localhost:8080`` +- upload file +- you should see the action reflected in server console + +### client (optional) + +- ``./client.sh`` - you must see in server console multipart fields -if ubuntu : - -- ``pip3 install aiohttp`` -- ``python3 client.py`` diff --git a/multipart/client.py b/multipart/client.py deleted file mode 100644 index d82c54dd..00000000 --- a/multipart/client.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python3 - -# This script could be used for actix-web multipart example test -# just start server and run client.py - -import asyncio -import aiohttp - -async def req1(): - with aiohttp.MultipartWriter() as writer: - writer.append('test') - writer.append_json({'passed': True}) - - resp = await aiohttp.ClientSession().request( - "post", 'http://localhost:8080/', - data=writer, headers=writer.headers) - print(resp) - assert 200 == resp.status - - -async def req2(): - with aiohttp.MultipartWriter() as writer: - writer.append('test') - writer.append_json({'passed': True}) - writer.append(open('src/main.rs')) - - resp = await aiohttp.ClientSession().request( - "post", 'http://localhost:8080/', - data=writer, headers=writer.headers) - print(resp) - assert 200 == resp.status - - -loop = asyncio.get_event_loop() -loop.run_until_complete(req1()) -loop.run_until_complete(req2()) diff --git a/multipart/client.sh b/multipart/client.sh new file mode 100755 index 00000000..10d82343 --- /dev/null +++ b/multipart/client.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +function SubmitFile () { + curl -X POST \ + -H "Content-Type: multipart/related" \ + --form "data=@example.png;type=image/png" http://localhost:8080 +} + +SubmitFile & SubmitFile & SubmitFile & +SubmitFile & SubmitFile & SubmitFile & +SubmitFile & SubmitFile & SubmitFile diff --git a/multipart/example.png b/multipart/example.png new file mode 100644 index 00000000..284b8a2f --- /dev/null +++ b/multipart/example.png @@ -0,0 +1,5 @@ +------------------------------4ebf00fbcf09 +Content-Disposition: form-data; name="example" + +test +------------------------------4ebf00fbcf09-- From b358d6634499972f36daab40a0ee29c0840a1437 Mon Sep 17 00:00:00 2001 From: Cristian Re <recris@amazon.com> Date: Tue, 13 Aug 2019 12:10:52 -0300 Subject: [PATCH 2/2] replace png file for a real png --- multipart/example.png | Bin 141 -> 1190 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/multipart/example.png b/multipart/example.png index 284b8a2fe2ef0bb7f69aa9c5b4647521e2c5a96b..2899104018929d26690630a2c54602e9ead5f35d 100644 GIT binary patch literal 1190 zcmaJ=OQ_X#5dO^QanevSsIX8ODvA>~3?)mtSMNo~!XzAADPHZ|5}I>;oIuMKUMv-q zY8DnrQH#JkMg-Pm;i5niB5EU%PAvivi9`rOeAM(myH@_-_u71XuW7fhw;t<k7#kQE z+puwL;PKYd@oulv?X`zDZQDG)ZBuX4cz4m9vGJ|ietxt!`ox^>sCE|5>uev@%`bK4 zwOYN-wqEOc=<W9Z@!RdzzEvxiO>f=P0x+GI4?ox3Gn;+;EmNEG-}yJc0ZhfJXI76i zUqAo{3IvdV98_R{1?=F00xD3477Q?fIjj&s2*MGC1X7TWtOf}sC`VNv5<+l75rIgE zoT!LFEW}P+q#zYiCoM9N37L}>1t^5VDT)%5Lg|#%u%i+xr>Z_p2*Vl01SVl}reX%O zFgtUxf>l_Zwb;NWY|d63;1CYyC{Az+r*l@Lm`k{vtNPL*3Rjd8ltjsuN*T(c?8>DI zRZ(@-QiGbPxmsyJLo{5YG@&V)u33$XTB7Az)wdI3a6=ivNQ~U5jA1OsZd|4?6;n4Y zGnk2)o0SDD#KJAg5|(1=menL<C01@#{fHm|4^$9>B*=p*7{L<k!4-;73H8tlLzskl zSVbU0B0QoZ5h;-#Sxwqe66I0Vj~$ZmL?t0fl02!Bku1rcT&YNvR8Ormq)D2mRR%I7 z!!s%qnUd+5)ifwevOKH$Re}_}X;o9EA}R8w0Zs75QtVAyO-Q9u>W#CFp=DC$jSG$V z3aRjhaYM9HD!oB(K&zz6o7W$Qx{ovyaEgbAR&PIZ@3W6~Zy1_3`{Is|XT3c!_~6LA z_h;@I9=dzo;GHAi-}cv=JLj(T<GUv&cFujRHDleeBTIk!VE@7ciw~Zhzwrv@;Dw9F z7cLpxb$-Q`cQ>y;ac0Xuzbu+Lx!~5*pa1&V;fHqbJ$7Nu`Y9X7zFGbHRKb+RpDbVV zz>)91JbCTxTkrk;V(-$z^GkpG=<3+HLwCJ=wR>X!p4oTM*Oy+o^!Ka$t^9ER<cZT? z9a-_=!Ce<l?K!Yu?fjuHX3zS0$K|bcC1%`LH$Hv#+~uP?ZrXS8+KMOlP5xL<9o_rz Y?rF>38T|8br$6F6vU2#-CF>{t17flp3IG5A delta 6 NcmZ3+*~>Vg7XSzQ0$Tt8