【问题标题】:Delphi: problem with httpcli (ICS) post methodDelphi:httpcli(ICS)发布方法的问题
【发布时间】:2010-03-08 18:24:44
【问题描述】:

我正在使用 HttpCli 组件表单 ICS 来发布请求。我使用组件附带的示例。它说:

procedure TForm4.Button2Click(Sender: TObject);
var
    Data : String;
begin
    Data:='status=no';
    HttpCli1.SendStream := TMemoryStream.Create;
    HttpCli1.SendStream.Write(Data[1], Length(Data));
    HttpCli1.SendStream.Seek(0, 0);
    HttpCli1.RcvdStream := TMemoryStream.Create;
    HttpCli1.URL := Trim('http://server/something');
    HttpCli1.PostAsync;
end;

但事实上,它不会发送

状态=否

但是

s.t.a.t.u

我不明白,问题出在哪里。也许有人可以举个例子,如何借助 HttpCli 组件发送 POST 请求?

PS 我不能使用 Indy =)

【问题讨论】:

    标签: delphi post httpclient


    【解决方案1】:

    我假设您使用的是 Delphi 2009 或更高版本,其中 string 类型包含每个字符两个字节的 Unicode 数据。 Length 函数给出字符的数量,而不是字节的数量,所以当你把你的字符串放入内存流时,你只复制一半 字符串中的字节。但是,即使您复制了所有这些,您仍然会在流中拥有一堆额外的数据,因为每个字符都有两个字节,而服务器可能只希望得到一个。

    使用不同的字符串类型,例如AnsiStringUTF8String

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多