EMSクライアントからサーバーへアクセスすると、「EMS Provider ERROR 予期しないコンテンツタイプです。 application/json を送出しました」というエラーが発生する
質問
「チュートリアル:FireDAC RAD サーバー リソースを実装する」を参考にしてRAD Serverのコードを実装しています。
EMSクライアントのプログラムを起動し、RAD Serverへアクセスすると以下のエラーが表示されます。
EMS Provider ERROR 予期しないコンテンツタイプです。 application/json を送出しました
このエラーが発生するのは何故でしょうか ?
回答
日本語のチュートリアルに記載されている実装コードが正しくありません。
チュートリアルのGET、POSTメソッドに記載されているコンテンツタイプの正しい実装コードは、以下の通りです。
<誤>
Delphiの場合:
AResponse.Body.SetStream(oStr, 'application/json', True);
C++の場合:
AResponse->Body->SetStream(oStr, "application/json", True);
<<正>>
Delphiの場合:
AResponse.Body.SetStream(oStr, 'application/vnd.embarcadero.firedac+json', True);
C++の場合:
AResponse->Body->SetStream(oStr, "application/vnd.embarcadero.firedac+json", True);
こちらの英語のチュートリアルには、正しい実装コードが記載されております。