From dfda4cb2926f6ed077a3170e9a98cff9256a3461 Mon Sep 17 00:00:00 2001 From: mbandic Date: Mon, 30 Oct 2023 12:28:02 +0000 Subject: [PATCH] Working on.. --- .gitignore | 2 ++ LICENSE | 2 +- dependency | 1 + lib/cppurl.hpp | 30 ++++++++++++++++++++++++++++++ src/cppurl.cpp | 30 ++++++++++++++++++++++++++++++ test/compile.sh | 1 + test/test | Bin 0 -> 24640 bytes test/test.cpp | 17 +++++++++++++++++ 8 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 dependency create mode 100644 lib/cppurl.hpp create mode 100644 src/cppurl.cpp create mode 100644 test/compile.sh create mode 100755 test/test create mode 100644 test/test.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..517e9ca --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vscode +example diff --git a/LICENSE b/LICENSE index 137069b..c06f6b3 100644 --- a/LICENSE +++ b/LICENSE @@ -58,7 +58,7 @@ APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. -Copyright [yyyy] [name of copyright owner] +Copyright [2023] [Marcel Bandić - marcelb96@yahoo.com] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/dependency b/dependency new file mode 100644 index 0000000..18ae19f --- /dev/null +++ b/dependency @@ -0,0 +1 @@ +libcurl4-openssl-dev \ No newline at end of file diff --git a/lib/cppurl.hpp b/lib/cppurl.hpp new file mode 100644 index 0000000..a81da5f --- /dev/null +++ b/lib/cppurl.hpp @@ -0,0 +1,30 @@ +#ifndef _CPPURL_ +#define _CPPURL_ + +#include +#include + +namespace marcelb { + +using namespace std; + +static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp); + +class Curl { + CURL *curl; + CURLcode res; + string readBuffer; + + + + public: + // Curl(); + string request(const string& req); + + +}; + + +} + +#endif diff --git a/src/cppurl.cpp b/src/cppurl.cpp new file mode 100644 index 0000000..7e784cc --- /dev/null +++ b/src/cppurl.cpp @@ -0,0 +1,30 @@ + +#include "../lib/cppurl.hpp" + +using namespace marcelb; + +// marcelb::Curl::Curl() { +// } + + +string marcelb::Curl::request(const string& req){ + curl = curl_easy_init(); + + readBuffer.clear(); + + if(curl) { + curl_easy_setopt(curl, CURLOPT_URL, req.c_str()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer); + res = curl_easy_perform(curl); + curl_easy_cleanup(curl); + } + + return readBuffer; +} + + +static size_t marcelb::WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) { + ((std::string*)userp)->append((char*)contents, size * nmemb); + return size * nmemb; +} \ No newline at end of file diff --git a/test/compile.sh b/test/compile.sh new file mode 100644 index 0000000..3df2b75 --- /dev/null +++ b/test/compile.sh @@ -0,0 +1 @@ +g++ test.cpp ../src/*.cpp -o test -lcurl \ No newline at end of file diff --git a/test/test b/test/test new file mode 100755 index 0000000000000000000000000000000000000000..d0b68c13b417fdc3c16ec980d9a8560aab68e384 GIT binary patch literal 24640 zcmeHPeRN#Kb)Q{H*bcTO6ATVc%;FEejMrLO{=ncww!HRJ@Q1J@Fck7wt=86-m3G;E zi)9)orZPDQqr`+HkVDd#Q<~70o;c??#K~!izzH@@0;XwFH%(h7F=Q1(EEGu8l(7BX znYmB1Py0A!N&l+mNPFM?&AoT--1&HK-p71Ax@ki&5D=WI#0Ld&w=Gmilg?<`t`9(( z#40fZzaeq4I0t;S#8iHhBFI(gWU!P@)p!*s>CK^oGW7il7EIYgqNL}S4xX=an2I{Z zlU@xShUf<=B!6A{(sac$HT7h9^;+IT9qkNLQ;%YkxmM|AHkH!Hb-fE*8SN*9i}dc* zdiQEQrXd|qrW{W)L;tI^T`%>xExdZ&TF*<@!zLxBR0gHCmz=Ij%4^knj&{gP4=eM6 zDVKLW^e8U>+oZ!Ow(0Wx+Tnn%H&f~-l$NHFohurbrn;7-lD+x9C4H+_ELqVQ&ZWZ* zGN1ek;h*}{#w{HJ%`!xoHYb9670>o4kGdx1ll;jqfAdch?;S|o{qSFW=BC42+kbHF zsZo+4ze$H=D3QEwa+kjXMzd?DX;H<39D8 z=40nZpLSgB6E`|-m21b1K5=XJDfcSa3E|(Hf#&|Bpa^zSkM> ze-8Qim_^=C69G~b@uJj^_L?Q;il$b@*J)hXE$y4_u0%GmGnsP|+4jxNsdR6mJ=U2@ z2;1J-lkT;1PAu!#wh}EX7|&-@b|RMBZO2oISZ_Wf#*t)i(lOXv!bxXLAd|@MNN0P5 zee;$!XQge&`}!i0NJD2VmyDz6Y_fM}OT5jAMB?4CtnFlDNhjA5kG93|6OAmh+w6Ec zgMyKpi?+sFuZy>>gs+uYTTb3*qjy%Oz0yV?V@?cCRAwL&frWT16N@LE-BF52o0CFa z{VKl=8Ov0h(g;){*3;5%x7XWI1Yp~B{?Tk}wA+^3?GZZ~m5x#**GDR?cC*rKa~c!9 zU8!>3M*SUKQDI9(8YoohUQ|0DcUsWs(deD+cH1hu&1tAdf7%txcG*dE=$Mm6uZitc zO|mMP&e;fAqOk?t(yeqlg|4$FV|FJ7L@!#yiFeaD=t6VQ$wR~JBjGF9@JAdPB!6mXVbe>N$+&da9h2S*=Dni3CvCSK%0h_Yw>E_`?CvB^9cbLvIGTPLn!clVR}%hjOXTuBbONEFv?EEQ<}PA!RZV@K z&L=&wWUm%L(lprOXVCdqzk(iv*6<@rV*cHU?jKd^x z5hynXxHbuD%z zyiCb&-wrccLmh`3A~=Nxab;eO-yp8OgIEOw#T3aAe~vt=#u}?i<^-i=HIB~#LYg)B zuYx3TK`{;V9LdpjeLxK1+)nF&5dK>)-F>crrIWxYk3G+HUV0iF`se@y3vz@J|CVO*)yh`ATtUEeu*JJV&Dr5e9XXgm1J(6_Ma}Z%!wo%PGxf{7`SdinKfeI+y;~} zX5i>p<4MPXY`kY26;lly9obEF20qhiQ89UXqa8_zst+1?lK;%;jkzIy!v4%hLjMba<`H)53FfIO6iO z;2a&k#N}zBIXXPc=w%K%)LGPYXxX-{on+i2A!c zEfhzG11?Vs#L?l`{=oGQN&aWdqj%i1gnGw%A^QjT#8svItscI^!*BNRQ4hby!!P&n zOFaA{5B~uVKik94@bEPr{tviUW7h8t5C5u%f62rDyNCaghyQ_x|E`Ds2M_;s5C3-_ z{;xdz7d`xEJ^Y}DzsJMx@$h*M-{avECLejVW#Gk+SOY(|`cIFvwnrmFk>{+zHUEfS zRGgiITs`K@#?&;AjxjY&E1s&ocrVEv)fDpAOZnv= zCUV7F*1(AM^shf;Jv~-s1)jBDe9Ji>25Pi{sl`(}WIM7x&0l-hPA-b$5P?hH>GPi$x7D_$`X`orzv;bwI3;#UHh_7&PLvl{;MYcCHXpVl49`uf1@kigdc1Ftz*v}&miMLnei+-_Z*2GD~!PKfpM!(k&SQDxw-Hl zI@YabaUpA9Pr=$BEueRf$!P8ya%L*vSYZ!z&dgwL`1d7d$ysQRA$!c~AHp$uwGxq6 z12hQA$plNilO_i8BV?xb$vTjc+9$=TXKFt)RN`qp1W%fSX$*tuSabv~iZeA}9 zZ1gO3hLdE&3LrMovld3hz`qneg?jgo1ojQ(e=IZicZ|6`#;Ga1@L$E^b4Sa2janV@ z)T#~Dvf$2fYal;l4Rjna-J&tR|JLIu2HD37-+^gs;AyZ&sJUp&{%7F@7_|EL3<;Xl zqA+o+&`pDGf5(s&IB}-t2sIX3N}6Sr7mTioJM5V%29!6P}EP& zJE-4Tbfbwq&5isZ8W1jIP%1RhpdBODfE<~(0~+s0RPR;P45;@B)cg2^dPe~tE6jox zy3s5cJ7HZDJ?>1A6+*qJv5-@XZu>);93cFQ-^q$oz@RKky;0VNYLEZ^vD!P=Sc991 zJNYd#pabzYRH=by2-bRI%9NDUP>qTPB#sq6PubKI9l9`djTZ`S6O}?xIsm&y46ixU zs6u|Muudvap~nh0z=uK%Ke{~%%cWB??^lp3gju`qlN2~P&W{xi{+1(0*-xE!nQRH! zIEBXyy}{XeXg#%fi;=&N^9NhySS16qOapNiK*5O6>r@up8(240x~I?&N)+BIE2yk& z_zM+WIwO`;*BX!=VZ^HaD$QAF{mnE1ozi{cQnpLk&(X?7HVmz6+?5Q#$ut>($q1B0 zfZkr9)a^K#-0G!Evxz&hiCj3@yEK+bF3tDe-kaXlyR^YCKZkdskSm1wy58#5=F3^3 z-h3(*>PtZ>>!--a&|h06xSQx zCZE&-ceQSkHJ$RvtGGQdm+MRQqW@W_ZzKGw{vLwBK3M%#RSSZ$Ao8OTS+h{iA{@Ii zw~YJIj{FOd-(%(nyIg$-`CZ7T+Yhe(4N9MUpn6jNQPApM!;ffxRq*TMSvcBpKc$y_vMQNdN-L8^YkvV$q#vWdKa3~bVY;+sRMp@^yF2F=XWmo z{bYWplCQbtH5o+tePp^`qD0r!l-_u&NO$1GA*=-`sVg2FXaVhpIHmJ(3ty%c^z0Jp zTt&njO=<08CaoqO$4wVXxKxvgzmKN%03~fs@H?mX>X%y?Z`BoIzgOu%PE+b``TQ;@ z%VD`A>j!ZO;kKmY57a6}+?tbowYGz0iR4%4d@QF*^0n9>jqvx+UW4@^g*0i}s_AW- zW;ETa=>bg-YI;c1Ax%$cdP>s~O~oZbraDbSn$~ODq-m?Bw`rQubg!ldG(D*4Ax(!g zJ)!9-O-D54kNxWAD?dV-)@!QJ%76L&dbWV?Csv0p@950;I{8o}5^fCFFNx$O8~Ip6 zL%6>23JtSHc^Uv*EndTuh|)y;F@T)=b;l3sY&B;TO*a$OmwjVQQlm zG)Ou7O;Y}S?)=2!H%NSr@QzO#xIpRreLu^;g@g0pXUigm&^-i7S;(8;Nhnl^7kuzB zAAC0K&4>LfFIN^8XhT zQ?JJ*K6gTW5Bu18!3ST56K1*kKInu06nGuR>2^I{*yEo84>4oV5g$8MI5C$i_a@-w zzK2c&r+8N5=_)08?+Nr98vmun<-H`}zxT1f5hrA_vrG3kc~1!P4{7`rJ>KO#Jm5z( zzEImg3XIZQz{~kR4`*p=FK<6w1f0s<;_3gZH6GLc$a`3@-vyld?Lm#xyhG`*#MQC+ z`#m50tPfr{t-SwnAN&a){Fo1Z5iYdK#b+7eL0lDvOz(xb+DHB-A3W=W?*~qC_Rcd0 zedJ&F!DpOX-v7nG$^PdqSN_X;q&WN{##gA!IBoZ_^N0`rZQ!2J$b$YAIL&X~>w%Yj z>{KDdDeQ)mUdzepn75=j3&_IXjl`6Y+FUCY5j!UHC|~tOR{Fo3vxuY;3ok=ykHY#g1&OCt-Kx zdwO<5#o%n(W1&RUN#vYxJd=^%{%%@j+sU-thrzzNF(SXOb?^-^AxZi&H|8X<%|i^| z?RG(rzNja@KA9Bu#!Xw-t=$Bbe5c)_zS)IY`WjbR-?FkNmW?M;otq-dZp`9?`{r0G z)rrq{qpf%L^t9FElVE$pwzZq1c67^n+CxGc+`3^yTNJw$tX;P$3UvKVTh?xFX@)R1 zzOkd0*0I)atMCJ5pM4>kJG(f;AhviEz8W-8LhYeCE!(4R{M3-*`lCMbhN? z!ds533VT%ryH1pR0k53J=jin1c|}{4xH~qq#=SL1SHtcj>g#&+*G_a6`K3LMOFyW0 zy=a6F|L0qbOmMT3);9OL_@fx4Av(bjc3wcRO7^@_dlI-2tGL}J?8-2qaI}Qn1;Wgz ztdErL&Y-uuXmeJ*tC^@WS9nJqvr=lJQCm{DQz155N$gB#cfb8CxpIO$Z8<{wPEe=v zZV|LXZ_`onHW$s278sAx4lBBtG8@5^oCp#$1j(C{^8xQTf;~8P_U17o^hK~~Nit{C zs}Xhvr)F$a(?WaLbhft3%9NbvO585px21e(dS{xFvgDQ5_<2d~ zfHfhI(pj|=iZX4SCU|2Wv&;#-thwTydpsLYnWb=pkO$s5)94*k#R)aKd5h8EJ==Gc zj?GFpk1{<~b3kc-p5U?E?X2t;W;lE1(snnlwP@orbPsb+sEOsg(@lpwb8^K^)!g8n zl3KRn^xlQNs`9x6PG1#uY}zu&+}FsgukHcu(Ha z6Fb7?H{6D9CHlWUY61#@tMK>jd-Gr9V_G41KJC^Gf;jZ1iC_+&ut8(tdi*#6Yl`uB)vWZlT z6!cLhw{b(F2dMF2`nueA)S_IqHv;HFBH4GV2wExgH4kXeep!b z!5WtK`jb}G8dBNdV-z0iNy5A`h|5Y5#^SXHYf`+b}#iP&9Gnj^0P*bn| zjll70TAJ(6&lj1p|G3R4lh^+kP~4hv>(9?0nTB+MR7Z+4>+^HSBrpmYm+uN_L4JM- z5t+z_neG5X&jwkap9eDCu7%lumSg%c-he+`R4jk7*K|76O~ zKe>F?=lVaS_19^G{5+K@_e0XBXE0vh~uhnp;P9>&?z?%B4TA!);?kQ=q9@B4n^!fP*(>w=^l#y6Z zariz72WI*Fe1j=&!<8g&{JyL8-7wW_aZR%&+T-oV@DDut{Je_kVHVWXTmHX!^e>Mn zL8hl&#}w`fhj_`OKV3hMW7@6M++T0`ze5f^ThP;<`#h5OyY|ML%V$c@6X_8?>+|!^ zz1ONDSx#}|@ngIe`qcMXpPvKr{^cQEe;U7(SdabsTVT}wtk3U1Jgy&%Y^O{ku|Cr| z$T#)f=T}WiiN`scU_IvNL76ZvpZ8~*)1)NGzL}a#2FD9@`P}U|oAnnnpedU(si%ub zNvlaI6tu(hz|uP(>_68Fk40SHm4^DQrxO#>&piW(%T>8_FTT9~d30hzy2_*AVa5Ld D_pfXX literal 0 HcmV?d00001 diff --git a/test/test.cpp b/test/test.cpp new file mode 100644 index 0000000..41f058d --- /dev/null +++ b/test/test.cpp @@ -0,0 +1,17 @@ +#include + +#include "../lib/cppurl.hpp" + +using namespace std; +using namespace marcelb; + +int main () { + + Curl rest; + + cout << rest.request("https://reqres.in/api/unknown/2") << endl; + + cout << rest.request("https://reqres.in/api/users/2") << endl; + + +} \ No newline at end of file