Delphi 2005を使用してJSON POSTリクエストの簡単な例をAPIに投稿できますか?GETを使用して多数の例が見つかりましたが、APIプロバイダはHTTP GETによるリクエストを許可せず、URLエンコーディングもサポートしていませんパラメーター。Delphi REST API投稿サンプル
私はRESTサービスを呼び出すための新しいサービスです(以前はSOAPを使用していました)ので、詳しい情報が必要な場合はお知らせください。
Delphi 2005を使用してJSON POSTリクエストの簡単な例をAPIに投稿できますか?GETを使用して多数の例が見つかりましたが、APIプロバイダはHTTP GETによるリクエストを許可せず、URLエンコーディングもサポートしていませんパラメーター。Delphi REST API投稿サンプル
私はRESTサービスを呼び出すための新しいサービスです(以前はSOAPを使用していました)ので、詳しい情報が必要な場合はお知らせください。
インディーズのTIdHTTP
コンポーネントを使用し、Post
メソッドを呼び出します。最初の引数としてURLを渡し、2番目の引数としてJSON文字列を渡します。このような何か:
procedure TForm1.Button1Click(Sender: TObject);
var jsonToSend:TStringList;
http:TIDHttp;
begin
http := TIDHttp.Create(nil);
http.HandleRedirects := true;
http.ReadTimeout := 5000;
jsonToSend:=TStringList.create;
jsonToSend.Add('{ Your JSON-encoded request goes here }');
Memo1.Lines.Text:=http.Post('http://your.restapi.url', jsonToSend);
jsonToSend.Destroy;
http.Destroy;
end;
end.
私はあなたがすでにJSONをエンコードおよびデコードすることができますと仮定して、あなただけのDelphiを使用してHTTPポストを実行する方法を求めていたものです。
一つの選択肢、私たちのmORMotオープンソース・フレームワークの一部使用して:に送信されたときに、JSONテキストとして変換されますcustom variant
storage、使用してJSONコンテンツを構築することができ、ここで
uses SynCrtSock, SynCommons;
var t: variant;
begin
TDocVariant.New(t);
t.name := 'john';
t.year := 1982;
TWinHTTP.Post('http://servername/resourcename',t,'Content-Type: application/json');
end;
注意をサーバ。
このコードは、 – mjn
...という呼び出しごとにTStringListインスタンスをリークし、http.post()内で例外が発生した場合にメモリ(http + jsontosendインスタンス)をリークします。 –