saya ingin mengunggah gambar ke server telegram dengan kiriman tetapi saya mendapatkan kesalahan batas waktu baca atau 415 jenis media tidak didukung.
telegram mengatakan: " Foto untuk dikirim. Anda dapat meneruskan file_id sebagai String untuk mengirim ulang foto yang sudah ada di server Telegram, atau mengunggah foto baru menggunakan multipart/form-data. "
apa yang salah?
var
IDUser : String;
Stream: TStringStream;
Params: TIdMultipartFormDataStream;
msg : WideString;
LHandler: TIdSSLIOHandlerSocket;
Src , boundry : string;
begin
API := edtAPI.Text;
IDUser := Edit1.Text;
Stream := TStringStream.Create('');
try
Params := TIdMultipartFormDataStream.Create;
try
//Params.AddFile('File1', 'C:\test.txt','image/png');
Params.AddFormField('chat_id',IDUser);
Params.AddFile('File1', 'E:\image.png','image/png');
//Data.CopyFrom(Params,0);
//Params.AddFormField(' test',',');
try
msg := '/sendPhoto';
LHandler := TIdSSLIOHandlerSocket.Create(nil);
//IdHTTP1.Request.ContentType := 'multipart/form-data';
IdHTTP1.ReadTimeout := 30000;
IdHTTP1.IOHandler:=LHandler;
LHandler.SSLOptions.Method := sslvTLSv1;
LHandler.SSLOptions.Mode := sslmUnassigned;
IdHTTP1.HandleRedirects := true;
IdHTTP1.Request.ContentType := 'multipart/form-data';
idhttp1.Request.SetHeaders;
memoResponse.Text :=idhttp1.Request.RawHeaders.Text;
memoRequest.Text := BaseUrl + API + msg;
IdHTTP1.Post(BaseUrl + API + msg, Params,Stream);
except
on E: Exception do
showmessage('Error encountered during POST: ' + E.Message+ ': '
+ intToStr(IdHTTP1.Response.ResponseCode))
end;
ShowMessage(Stream.DataString);
finally
Params.Free;
end;
finally
Stream.Free;
end;
maaf untuk bahasa inggris yang buruk.
Request.ContentType
secara manual (Post()
menanganinya untuk Anda), dan Anda memanggilRequest.SetHeaders()
secara langsung (jangan lakukan itu). Jika Anda ingin mencatat apa yangTIdHTTP
kirim, Anda dapat melampirkan komponenTIdLog...
keTIdHTTP
, sepertiTIdLogEvent
atauTIdLogStream
. - person Remy Lebeau   schedule 19.07.2016Params.AddFile()
, Anda harus menggunakan'photo'
dan bukan'File1'
sebagai nama bidang. - person Remy Lebeau   schedule 20.07.2016