【发布时间】:2019-06-01 07:27:29
【问题描述】:
我正在编写一个可以解密 JDownloader DLC 文件的软件。该程序将通过 POST 请求将 dlc 文件发送到“http://dcrypt.it/decrypt/upload”,并将获得解码后的链接作为响应。
这是我抛出该错误的代码:
var
Form1: TForm1;
Stream: TStringStream;
Params: TIdMultiPartFormDataStream;
HTTP: TIdHTTP;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Stream := TStringStream.Create('');
Params := TIdMultiPartFormDataStream.Create;
Params.AddFile('File1', 'D:\3fcaa401f8f3ebe32fb93cb607ecadd01ee954ed.dlc', 'application/octet-stream');
HTTP.Post('http://dcrypt.it/decrypt/upload', Params, Stream);
ShowMessage(Stream.DataString);
end;
当我调试我的程序时,Delphi IDE 在 IdHTTP.pas 中显示这些:
function TIdCustomHTTP.GetRequest: TIdHTTPRequest;
begin
Result := FHTTPProto.Request; //This line is highlighted.
end;
那么,我应该怎么做才能解决这个问题?
【问题讨论】:
-
@Zam 我在表单中添加了 Indy HTTP 组件;但它仍然会抛出“Bad Request”错误。
-
附带说明,我不建议使用
TStringStream来接收响应,尤其是在未指定Encoding时。Post()有一个重载,将响应作为String返回,请改用它,例如:ShowMessage(HTTP.Post('http://dcrypt.it/decrypt/upload', Params));