このカールシーケンスはMS Windowsで動作し、Delphi XE 10.1 BerlinでIndyと同等の機能を使用しようとしています。Delphi XE10.1でカールを使用/解析する
カールコードはこれです:
curl -k "https://fakeweb.com/options" --data-binary "{\"name\":\"Name of the Client\",\"email\":\"[email protected]\"}"
私は、次のコードを試してみましたが、それは常に私が同じmessagge取得
procedure TForm2.Button4Click(Sender: TObject);
const
COMI = Char(34);
var
data: string;
DataToSend : TStringStream;
IdHTTP: TIdHTTP;
Answer: string;
begin
try
data := '{\' + COMI + 'name\' + COMI + ':\' + COMI + 'Name of the Client\' + COMI +
',\' + COMI + 'email\' + COMI + ':\' + COMI + '[email protected]\' + COMI + '}' ;
DataToSend := TStringStream.Create(data);
IdHTTP := TIdHTTP.Create(Application);
IdHTTP.Request.Accept := 'application/json, text/plain; q=0.9, text/html;q=0.8,';
IdHTTP.Request.ContentType := 'application/json, text/plain; q=0.9, text/html;q=0.8,';
Answer := IdHTTP.Post('https://fakeweb.com/options', DataToSend); //its not the real URL
ShowMessage(Answer);
except on E: Exception do
ShowMessage('Error: '+E.ToString);
end;
end;
を動作しません:HTTP/1.1 500内部Sreverエラーを。 誰かが私を助けることができますか?
ありがとうございます。
は、バックスラッシュなしでペイロードを送信します。カールのエスケープ文字のみです。 – mjn42
@ mjn42回答ありがとうございますが、私もバックスラッシュなしで試してみました。同じエラーです。コードは最後のテストです。 – elcharlie
あなたが求めているものとは無関係ですが、あなたは 'DataToSend'を解放していないようです。 – MartynA