문제

HTTPCLI 구성 요소 양식 IC를 사용하여 요청을 게시하고 있습니다. 구성 요소와 함께 제공되는 예제를 사용합니다. 그것은 말한다 :

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;

그러나 사실은 보냅니다

상태 = 아니오

하지만

법정

이해할 수 없습니다. 문제는 어디에 있는지 이해할 수 없습니다. 어쩌면 누군가 HTTPCLI 구성 요소의 도움으로 사후 요청을 보내는 방법을 보여줄 수 있습니까?

추신 나는 indy =)를 사용할 수 없다.

도움이 되었습니까?

해결책

Delphi 2009 이상을 사용하고 있다고 생각합니다. string 유형은 2 바이트당 유니 코드 데이터를 보유합니다. 그만큼 Length 함수는 수를 제공합니다 캐릭터, 수는 아닙니다 바이트, 그래서 문자열을 메모리 스트림에 넣을 때만 복사합니다. 문자열에서 바이트. 그러나 모든 문자에는 두 개의 바이트가 있고 서버는 아마도 하나만 얻을 것으로 기대하기 때문에 스트림에 추가 데이터가 많이있을 것입니다.

다른 문자열 유형을 사용하십시오 AnsiString 또는 UTF8String.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top