Вверх ↑
Этот топик читают: Гость
Ответов: 4
Рейтинг: 0
#1: 2013-06-22 02:25:21 ЛС | профиль | цитата
Отличный компонент с уже реализованными методами GET и POST
для полного счастья мне не хватает DELETE, PUT, HEAD и возможность менять "Content Type" (сейчас я просто изменил строку в компоненте на нужную application/atom+xml)
пытался это сделать самостоятельно, 2 дня под грифом: "потрачено"

В качестве благодарности ящик пива WMU/WMR за рабочий компонент

в конце пролог:
Собственно это нужно для работы с Google Spreadsheets API v3, можно пойти немного по другому и использовать готовый код на vs .net (как отдельную библиотеку dll) ссылка на документацию (https://developers.google.com/google-apps/spreadsheets/) и ссылка на готовую программу и исходный код для работы с Spreadsheets Google Data API (http://code.google.com/p/google-gdata/downloads/list)

спасибо.
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 839
Рейтинг: 17
#2: 2013-06-23 12:35:45 ЛС | профиль | цитата
Советую сделать при помощи Vbs

Add(VBJScript,4005745,175,119)
{
WorkPoints=#6:DoWork|
DataPoints=#3:Url|8:FileName|
Script=#23:Sub doWork(Data, Index)|11:Url=sys.Url|21:FileName=sys.FileName|56:dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")|51:dim bStrm: Set bStrm = createobject("Adodb.Stream")|28:xHttp.Open "GET", Url, False|10:xHttp.Send|0:|10:with bStrm|23: .type = 1 '//binary|9: .open|29: .write xHttp.responseBody|28: .savetofile FileName, 2 |8:end with|8:End Sub |
UseName=0
}

и тд
карма: 0

0
Ответов: 4
Рейтинг: 0
#3: 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] [430]
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)