Вверх ↑
Ответов: 4
Рейтинг: 0
#1: 2013-06-23 23:50:44 ЛС | профиль | цитата
GAv, спасибо, но это не совсем то что я искал. Хорошая мысль использовать java или vbs для решения, но оно будет временное.

Я нашел код на 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;
Взято с http://www.example-code.com/delphi/http.asp

Предложение с ящиком пива или 50$ по-прежнему в силе. Если хотите эти деньги можно пожертвовать проекту HiAsm от вашего имени.

UPD: тема закрыта, нашел решение через POST запрос и изменение в unit hiHTTP_Get; строки на s := 'Content-Type: application/atom+xml';
карма: 1

0
файлы: 1code_31325.txt [2.1KB] [515]