delphi - Indy http 后解码

标签 delphi indy indy10

如何解码和解析 URL,以便将其用作 POST 参数。

continue=http%3A%2F%2Fmail.google.com%2Fmail%2F&service=mail&rm=false&dsh=..

var
 URL:String;
 Data:TStringList;
 MemoryStream:TMemoryStream;
begin
IdHTTP1.Post(URL, Data, MemoryStream);

最佳答案

您可以使用 TIdURI 完成这一切:

  • 要解码,请使用 TIdURI.URLDecode(...)
  • 要进行解析,请将解码后的 URI 传递给 TIdURI.Create

把它们放在一起你会得到这样的东西:

var
  URI: TIdURI;
....
URI := TIdURI.Create(TIdURI.URLDecode(EncodedURI));
try
  // Protocol = URI.Protocol
  // Username = URI.Username
  // Password = URI.Password
  // Host = URI.Host
  // Port = URI.Port
  // Path = URI.Path
  // Query = URI.Params
finally
  URI.Free;
end;

感谢这些答案:

关于delphi - Indy http 后解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770440/

相关文章:

Java 相当于 Delphi NOT

delphi - Delphi Indy SMTPServer读取多部分消息

delphi - 为什么我不能在Delphi程序中获取AOL验证码图像?

delphi - 无法使用 Delphi 通过 Post 打开 Microsoft Speech Recognition API

delphi - 当 T 是事件处理程序时 IList<T> 崩溃?

Delphi网络摄像头简单程序

delphi - 转换 TNTUnicode

delphi - 从Windows应用程序向服务应用程序发送大量数据

delphi - 具有数千个客户端的客户端-服务器的最佳组件

delphi - TIdTCPClient 连接后启动 TLS