我需要帮助来解决使用IdHTTP上传照片到wildberries.ru的问题。从站点加载图像时,Post数据如下所示:
------WebKitFormBoundaryCpJAFY6AlIHK7dZt
Content-Disposition: form-data; name="nmId"
13927988
------WebKitFormBoundaryCpJAFY6AlIHK7dZt
Content-Disposition: form-data; name="photos"; filename="13927988-2.jpg"
Content-Type: image/jpeg
{here these photos are most likely}
------WebKitFormBoundaryCpJAFY6AlIHK7dZt--
不知道如何通过IdHTTP传输数据。我使用的是RAD Studio 10.3.1 Rio,Indy 10。
发布于 2020-09-25 14:55:23
TIdHTTP
有一个重载的Post()
方法,该方法接受TIdMultipartFormDataStream
作为输入,而后者又有AddFormField()
和AddFile()
方法。例如:
uses
..., IdHTTP, IdSSLOpenSSL, IdMultipartFormData;
var
HTTP: TIdHTTP;
SSL: TIdSSLIOHandlerSocketOpenSSL;
begin
HTTP := TIdHTTP.Create;
try
SSL := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);
SSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
HTTP.IOHandler := SSL;
Data := TIdMultipartFormDataStream.Create;
try
with Data.AddFormField(‘nmId’, ‘13927988’) do
begin
ContentType := '';
ContentTransfer := '';
end;
with Data.AddFile(‘photos’, ‘full path to\13927988-2.jpg’, ‘image/jpeg’) do
ContentTransfer := '';
HTTP.Post(‘https://www.wildberries.ru/...’, Data);
finally
Data.Free;
end;
finally
HTTP.Free;
end;
end;
https://stackoverflow.com/questions/64058987
复制相似问题