對這個問題What’s the simplest way to call Http GET url using Delphi? 我真的想看看如何使用POST樣本的啓發。最好從呼叫接收XML。使用Delphi調用Http POST url最簡單的方法是什麼?
補充:關於包括在後數據的圖片或其他文件是什麼?
對這個問題What’s the simplest way to call Http GET url using Delphi? 我真的想看看如何使用POST樣本的啓發。最好從呼叫接收XML。使用Delphi調用Http POST url最簡單的方法是什麼?
補充:關於包括在後數據的圖片或其他文件是什麼?
利用Indy。把你的參數放在一個StringList(name = value)中,並簡單地使用URL和StringList調用Post。
function PostExample: string;
var
lHTTP: TIdHTTP;
lParamList: TStringList;
begin
lParamList := TStringList.Create;
lParamList.Add('id=1');
lHTTP := TIdHTTP.Create;
try
Result := lHTTP.Post('http://blahblahblah...', lParamList);
finally
lHTTP.Free;
lParamList.Free;
end;
end;
再次,Synapse TCP/IP library來救援。使用HTTPSEND例程HTTPPostURL。
function HttpPostURL(const URL, URLData: string; const Data: TStream): Boolean;
您的URL也是發佈的資源,URLDATA將是表單數據,並且您的XML結果將作爲DATA中的流返回。
下面是使用印地發佈一個JPEG運行Gallery
我有這種東西,更多的例子(我的屏保我在Delphi寫了可用的庫項目中使用他們的網絡服務器的例子here,或在畫廊網站here的更多信息)。
我想最重要的一點是,JPEG被傳遞作爲一個流。
procedure AddImage(const AlbumID: Integer; const Image: TStream; const ImageFilename, Caption, Description, Summary: String);
var
Response: String;
HTTPClient: TidHTTP;
ImageStream: TIdMultipartFormDataStream;
begin
HTTPClient := TidHTTP.Create;
try
ImageStream := TIdMultiPartFormDataStream.Create;
try
ImageStream.AddFormField('g2_form[cmd]', 'add-item');
ImageStream.AddFormField('g2_form[set_albumId]', Format('%d', [AlbumID]));
ImageStream.AddFormField('g2_form[caption]', Caption);
ImageStream.AddFormField('g2_form[force_filename]', ImageFilename);
ImageStream.AddFormField('g2_form[extrafield.Summary]', Summary);
ImageStream.AddFormField('g2_form[extrafield.Description]', Description);
ImageStream.AddObject('g2_userfile', 'image/jpeg', Image, ImageFilename);
Response := HTTPClient.Post('http://mygallery.com/main.php?g2_controller=remote:GalleryRemote', ImageStream);
finally
ImageStream.Free;
end;
finally
HTTPClient.Free;
end;
end;
TIdHTTP支持HTTPS也? – Ampere 2014-07-01 13:36:12
是的,TIdHTTP支持HTTPS。 http://stackoverflow.com/a/6693653/19183 – 2014-07-01 20:51:17