Я нашел код на Delphi Send XMLHttpRequest using PUT, GET, DELETE, or any HTTP Request Method объеденив его с существующим компонентом HTTP_Download можно получить то что мне нужно, однако я в этом не преуспел, мозгов явно не хватает.
#pas
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
CHILKATHTTPLib_TLB,
OleCtrls;
...
procedure TForm1.Button1Click(Sender: TObject);
var
http: TChilkatHttp;
success: Integer;
xmlStr: String;
endpointDomain: String;
endpointPort: Integer;
endpointSsl: Integer;
request: TChilkatHttpRequest;
response: IChilkatHttpResponse;
begin
http := TChilkatHttp.Create(Self);
// Any string unlocks the component for the 1st 30-days.
success := http.UnlockComponent('Anything for 30-day trial');
if (success <> 1) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
// The XML sent in the body of the request is application
// specified -- it should contain whatever the server-side
// application is expecting..
xmlStr := '<?xml version="1.0" encoding="UTF-8"?><appXml><something>123</something></appXml>';
// If the service endpoint is "http://www.chilkatsoft.com/xmlEcho.asp",
// then we have the following arguments to be passed to
// SynchronousRequest:
endpointDomain := 'www.chilkatsoft.com';
endpointPort := 80;
endpointSsl := 0;
// Prepare the HTTP request object:
request := TChilkatHttpRequest.Create(Self);
request.Path := '/xmlEcho.asp';
// This example will use the "PUT" HTTP request method
// (also known as HTTP verb)
request.HttpVerb := 'PUT';
request.ContentType := 'text/xml';
request.Charset := 'utf-8';
request.LoadBodyFromString(xmlStr,'utf-8');
response := http.SynchronousRequest(endpointDomain,endpointPort,endpointSsl,request.DefaultInterface);
if (response = nil ) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
// The raw HTTP request sent by the above call is:
//
PUT /xmlEcho.asp HTTP/1.1
Content-Type: text/xml
Host: www.chilkatsoft.com
Content-Length: 81
<?xml version="1.0" encoding="UTF-8"?><appXml><something>123</something></appXml>
// Examine the Body of the HTTP response
// This would be the XML response sent by the server.
Memo1.Lines.Add(response.BodyStr);
end;
Предложение с ящиком пива или 50$ по-прежнему в силе. Если хотите эти деньги можно пожертвовать проекту HiAsm от вашего имени.
UPD: тема закрыта, нашел решение через POST запрос и изменение в unit hiHTTP_Get; строки на s := 'Content-Type: application/atom+xml';