Ik doe een HTTPS Post met WinInet:
Delphi Code:
var
hInet : HINTERNET;
hHTTP : HINTERNET;
hReq : HINTERNET;
BData : AnsiString;
const
Accept: packed array[0..1] of LPWSTR = (PChar('*/*'), nil);
Header: string = 'Content-Type: ' + ContentType;
begin
Result := True;
hInet := InternetOpen(UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
try
hHTTP := InternetConnect(hInet, BaseHost, INTERNET_DEFAULT_HTTPS_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
try
hReq := HttpOpenRequest(hHTTP, PChar('POST'), PChar(APath), nil, nil, @Accept, INTERNET_FLAG_KEEP_CONNECTION OR INTERNET_FLAG_NO_CACHE_WRITE OR INTERNET_FLAG_RELOAD or INTERNET_FLAG_SECURE, 1);
try
if not HttpSendRequest(hReq, PChar(Header), Length(Header), PChar(BData), Length(BData)) then
Result := False;
finally
InternetCloseHandle(hReq);
end;
finally
InternetCloseHandle(hHTTP);
end;
finally
InternetCloseHandle(hInet);
end;
end;
Gaat allemaal prima, maar hij hakt af op 1024 bytes.. En ik snap niet waarom? Iemand die weet hoe dit op te lossen is? Ik weet dat bovenstaand enkel post (niet de data die de server terug geeft ook ophaalt), maar dat is voor mij ook niet belangrijk omdat het in een klein programma zit dat enkel wat data hoeft door te sturen. Nu is alleen als ik een JSON string heb - langer dan 1024 karakters (ANSI) dan hakt hij nog altijd af op 1024 tekens..
Code:
POST https://app.mysite.xx/plugin HTTP/1.1
Content-Type: application/json
User-Agent: MyAwesomeUseragent
Host: app.mysite.xx
Content-Length: 1024
Connection: Keep-Alive
Cache-Control: no-cache
Bookmarks