我试图通过使用delphi中的Indy组件通过https上传文件.这是我的代码:
HTTP := TIdHTTP.Create(Self)
IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create;
HTTP.Request.Host := RemoteHost;
HTTP.Request.Connection := 'keep-alive';
HTTP.Request.Accept := 'multipart/mixed';
HTTP.IOHandler := IOHandler;
HTTP.ConnectTimeout := 0;
HTTP.ReadTimeout := 0;
//### CREATE FILE TO SEND
TestStream := TIdMultipartFormDataStream.Create;
try
//### POST PARAMETERS
TestStream.AddFormField('ReceiverId','LOOPTEST');
TestStream.AddFormField('FileType','LOOPBACK');
//### ADD FILE
TestStream.AddFile('filename','C:\PRUEBA.txt',GetMIMETypeFromFile('C:\PRUEBA.txt'));
HTTP.Request.ContentType := TestStream.RequestContentType;
HTTP.Post('https://www.remotehost.com/controller?function=submitfile',TestStream, Resultado);
memResultado.Lines.Add(Resultado.DataString);
finally
FreeAndNil(TestStream);
FreeAndNil(HTTP);
FreeAndNil(IOHandler);
end;
Run Code Online (Sandbox Code Playgroud)
服务器不发送任何错误.只是文件没有上传.我的代码有问题吗?
我花了两天时间试图让它发挥作用:S.
任何帮助将不胜感激.我正在使用带有Indy版本10.1.1的Delphi XE.
更新:我使用了Indy TIdLog组件,这是结果.我找不到任何奇怪的事:
Stat Connected.
Sent 05/09/2013 12:52:00 p.m.: POST /servlet/controller HTTP/1.1<EOL>Content-Type: application/x-www-form-urlencoded<EOL>Content-Length: 47<EOL>Host: ebmx.extra.client.com<EOL>Accept: text/html, /*<EOL>Accept-Encoding: identity<EOL>User-Agent: Mozilla/3.0 (compatible; Indy …Run Code Online (Sandbox Code Playgroud)