2012-06-04 6 views
7

내 목표는 내가http 게시물을 사용하여 파일을 업로드하려면 어떻게해야합니까? 델파이 2009

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

나는 그것이를 사용하여 수행 할 수 있습니다 이해는 다음 URL을 예를 들어 델파이 2009 년

말을 사용하고 HTTP 포스트를 통해 텍스트 파일을 업로드하는 것입니다 TIdHttp 구성 요소. 다음 전화

IdHttp1.Post(); 

하지만 URL을 지정하고 게시 할 파일을 모두 설정하는 방법을 알아낼 수 없습니다.

감사합니다.

var 
    Response: String; 

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

:

답변

8

TIdHTTP 입력으로 파일명을 Post() 두 버전이 오버로드. 미리 TIdHTTP.IOHandler 재산 등 TIdSSLIOHandlerSocketOpenSSL 먼저 SSL을 사용하는 IOHandler를 할당 할 필요가 있도록, HTTPS URL에 게시하는

var 
    Response: TStream; 

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

참고.

+0

감사합니다. 그러나 컴파일하려고하면 다음 오류가 발생합니다. "E2250 이러한 의견을 가지고 호출 할 수있는 '게시'의 오버로드 된 버전은 없습니다. – Trevor

+1

그렇다면 최신 버전의 Indy는 현재 버전에서 이러한 오버로드를 사용할 수 있기 때문에 최신 버전의 Indy를 사용하고 있지 않습니다.'Function Post (AURL : string; const ASourceFile : String {$ IFDEF STRING_IS_ANSI}; ADestEncoding : TIdTextEncoding = nil { $ ENDIF}) : 문자열; overload; and procedure procedure (AURL : 문자열; const ASourceFile : 문자열; AResponseContent : TStream); 과부하, ' –

+0

좋아, 나는 Indy를 갱신하려고 노력하고있다. 그러나 그 고통은 내가 많은 어려움을 겪고있다. 이전에 패키지를 설치 한 적이 없습니다 .. 우연히 TWebBrowser로 할 수있는 방법이 있습니까? – Trevor