【问题标题】:Indy http post decodeIndy http post 解码
【发布时间】:2013-09-17 04:54:12
【问题描述】:

如何解码和解析 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);

【问题讨论】:

    标签: delphi indy indy10


    【解决方案1】:

    你可以用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;
    

    确认这些答案:

    【讨论】:

    • 这样不是更好吗? URI := TIdURI.Create(TIdURI.URLDecode(URL+'/'+Params));
    • 比什么好?我不知道你的数据来自哪里。您需要的工具在这里。
    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    相关资源
    最近更新 更多