質問

私がリクエストを投稿する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ように、異なる文字列型を使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top