デルファイ:httpcli(ICS)POSTメソッドでの問題
-
18-09-2019 - |
質問
私がリクエストを投稿する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私はインディを使用することはできません=)
解決
私はあなたがstring
型は2バイトあたりの文字のUnicodeデータを保持しているのDelphi 2009以降を、使用しているとします。 Length
機能を使用すると、メモリストリームにあなたの文字列を入れたときに、あなただけのをコピーし、の文字の数ではなく、の数がのバイト与え半分文字列からバイト。あなたがそれらのすべてをコピーしたのだとしても、各文字は2つのバイトを持っており、サーバはおそらく唯一のものを得ることを期待するので、しかし、あなたはまだ、ストリーム内の余分なデータの束を持っていると思います。
このようなAnsiString
又はUTF8String
ように、異なる文字列型を使用します。
所属していません StackOverflow