Code: Select all
#include once "curl.bi"
#include once "crt/string.bi"
' this callback will be called when any data is received
Private Function write_callback CDecl _
( _
ByVal buffer As Byte Ptr, _
ByVal size As Integer, _
ByVal nitems As Integer, _
ByVal outstream As Any Ptr _
) As Integer
Static As ZString Ptr zstr = 0
Static As Integer maxbytes = 0
Dim As Integer bytes = size * nitems
'current zstring buffer too small?
If( maxbytes < bytes ) Then
zstr = Reallocate( zstr, bytes + 1 )
maxbytes = bytes
End If
' "buffer" is not null-terminated, so we must dup it and add the null-term
memcpy( zstr, buffer, bytes )
zstr[bytes] = 0
' just print it..
Print *zstr
Return bytes
End Function
' init
Dim As CURL Ptr curl = curl_easy_init( )
If( curl = 0 ) then end 1
' set url and callback
curl_easy_setopt(curl, CURLOPT_URL, "https://target.url")
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, @write_callback)
'custom headers
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, "Content-Type: application/json; charset=UTF-8"" ""Accept: application/json; charset=UTF-8"" ""Version 2"" ""X-IG-API-KEY: aaaaaaa")
'specify we want to POST data
curl_easy_setopt(curl, CURLOPT_POST, 1L)
'specify the POST data */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "'{""identifier"": ""uuuuuuu"",""password"": ""ppppppp"",""encryptedPassword"": null}'")
'' execute..
curl_easy_perform(curl)
'' shutdown
curl_easy_cleanup(curl)
print "Done"
sleep