【问题标题】:How do I list Pastebin pastes created by a user in Delphi?如何列出用户在 Delphi 中创建的 Pastebin 粘贴?
【发布时间】:2020-11-08 01:34:15
【问题描述】:

我是 Delphi 的初学者(因为学校,我使用 Delphi 2010),我正在尝试获取一个包含 pastebin 用户创建的粘贴列表的输出文本文件,但我不确定该怎么做。在 Pastebin.com (PastebinAPI) 上,他们解释了 API 的工作原理,但我无法让它在 Delphi 上运行。

这是我到目前为止编写的代码(我模糊了我的细节):

procedure TfrmLogin.imgLoginButtonClick(Sender: TObject);
var
  sSource, sAPI_Dev_Key, sAPI_User_Key, sAPI_Results_Limit, sAPI_Option,
    sListPasteLink: String;
begin

  sSource := 'https://pastebin.com/api/api_post.php/';
  sAPI_Dev_Key := 'xxxxxxxxxxxxxxxxxxxxxxxx/';
  sAPI_User_Key := 'xxxxxxxxxxxxxxxxxxxxxxx/';
  sAPI_Results_Limit := '1000/';
  sAPI_Option := 'list';

  sListPasteLink := sSource + sAPI_Dev_Key + sAPI_User_Key +
    sAPI_Results_Limit + sAPI_Option;
end;

我不确定这之后该怎么做,如何在 Delphi 中发布这个生成的链接以获取创建的粘贴列表?

我尝试复制生成的链接并将其粘贴到我的网络浏览器中,但 Pastebin 说 此页面已被删除!

任何帮助将不胜感激,谢谢

【问题讨论】:

  • 查看here 的方法。
  • @Olivier 我试过了,但是我得到这个错误:IOHandler value is not valid
  • @Olivier 难道是IDHttp不接受HTTPS链接?
  • HTTPS 确实有特殊处理。看我的回答。
  • 还要注意 pastebin.com 接受普通的 HTTP 连接。无论如何,让 SSL 与旧的 Delphi 版本一起工作可能会很棘手。

标签: delphi pastebin


【解决方案1】:

这是一个例子。在表单上放置 TButtonTMemoTIdHTTPTIdSSLIOHandlerSocketOpenSSL。您还需要将 libeay32.dll 和 ssleay32.dll 复制到您的应用程序目录中(在安装 Delphi 的目录中提供了它们)。

procedure TForm1.Button1Click(Sender: TObject);
var
  Params: TStringList;
begin
  Params := TStringList.Create;
  Params.Add('api_dev_key=*****');
  Params.Add('api_user_key=*****');
  Params.Add('api_option=list');
  try
    IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1_1, sslvTLSv1_2];
    IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
    Memo1.Text := IdHTTP1.Post('https://pastebin.com/api/api_post.php', Params);
  finally
    Params.Free;
  end;
end;

【讨论】:

  • 我在Delphi 2010中试过这段代码,不幸的是SSL版本不兼容,然后我决定下载最新版本的Delphi,你的代码可以完美运行。非常感谢您的帮助,我花了几个小时试图解决这个问题。非常感谢 Olivier 先生。
猜你喜欢
  • 1970-01-01
  • 2013-02-25
  • 2014-08-11
  • 2014-03-15
  • 2012-10-14
  • 2011-05-24
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多