2012-06-04 24 views
7

Amacım benhttp post'u kullanarak nasıl dosya yüklerim? Delphi 2009

https://www.example.com/ex/exampleAPI.asmx/Process

Ben kullanılarak yapılabilir anlamaya aşağıdaki URL'ye örneğin Delphi 2009.

Say kullanıyorum HTTP posta yoluyla bir metin dosyası yüklemektir TIdHttp bileşeni. Ve aşağıdaki çağrı

IdHttp1.Post(); 

Ama her şeyi yani url belirterek ve yayınlanabilir dosyayı dahil kurmak anlamaya olamaz.

Teşekkürler.

var 
    Response: String; 

Response := IdHTTP1.Post('https://www.example.com/ex/exampleAPI.asmx/Process', 'c:\filename.txt'); 

:

cevap

8

TIdHTTP girdi olarak dosya alabilir Post() iki aşırı yüklü sürümü vardır. önceden TIdHTTP.IOHandler mülke gibi TIdSSLIOHandlerSocketOpenSSL öncelikle bir SSL etkinleştirilmiş IOHandler atamanız gerekir böylece, bir HTTPS URL'ye gönderiyorsunuz

var 
    Response: TStream; 

Response := TMemoryStream.Create; 
IdHTTP1.Post('https://www.example.com/ex/exampleAPI.asmx/Process', 'c:\filename.txt', Response); 
... 
Response.Free; 

Not.

+0

Teşekkür ederim, ama derlemeye çalıştığımda aşağıdaki hatayı alıyorum. "E2250 Bu argümanlar ile çağrılabilecek 'Post' aşırı yüklü sürümü yok" herhangi bir fikir? – Trevor

+1

Şu an için güncel bir sürümünü Indy kullanmıyorsunuz, çünkü geçerli sürümde bu tür aşırı yüklenmeler mevcut: 'function Post (AURL: string; const ASourceFile: String {$ IFDEF STRING_IS_ANSI}; ADestEncoding: TIdTextEncoding = nil { $ ENDIF}): dize; aşırı yükleme; 've' yordam Gönderi (AURL: string; const ASourceFile: String; AResponseContent: TStream); Aşırı yük; ' –

+0

Tamam Indy'yi güncellemeye çalışıyorum ama acı çekiyorum çok fazla sorun yaşıyorum. Daha önce hiç paket yüklemedim .. Bunu bir TWebBrowser ile şans eseri yapmanın bir yolu var mı? – Trevor

İlgili konular