小编use*_*930的帖子

使用indy/delphi组件通过https发布文件

我试图通过使用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)

delphi https indy

2
推荐指数
1
解决办法
5755
查看次数

标签 统计

delphi ×1

https ×1

indy ×1