델파이 : httpcli (ICS) 게시물의 문제
-
18-09-2019 - |
문제
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
.
제휴하지 않습니다 StackOverflow