如何使用 TRestClient 库从 Delphi (Rio) 应用程序将媒体项目上传到 WordPress

How to upload a media item to WordPress from Delphi (Rio) app using TRestClient library

我们有一个 WordPress 开发的网站,它有一个模板,可以通过 WP 自身对 REST 的支持来实现内容管理 API,我们想上传包含照片的内容。 这个想法是上传照片,然后上传与上传的照片相关联的内容。 我们上传照片的代码如下(使用Delphi发行版提供的库使用示例):

procedure Tfrm_Main.btn_MediaClick(Sender: TObject);
var jpgFoto: TMemoryStream;
begin
  ResetRESTComponentsToDefaults;

  RESTClient.BaseURL := lbledt_BaseWProp.Text;
  RESTClient.Authenticator := HTTPBasic_DelphiPRAXiS;

  RESTRequest.Resource := 'media';

  HTTPBasic_DelphiPRAXiS.Username := lbledt_Usuario.Text;
  HTTPBasic_DelphiPRAXiS.Password := lbledt_Clave.Text;

  jpgFoto := TMemoryStream.Create;
  jpgFoto.LoadFromFile('t:\beautiful-blowball-dandelion-vector-background.jpg');
  jpgFoto.Position := 0;
  RESTRequest.AddBody(jpgFoto, TRESTContentType.ctIMAGE_JPEG);
  RESTRequest.Method := TRESTRequestMethod.rmPOST;

  RESTRequest.Execute;
  jpgFoto.Free;
end;

得到的响应如下:

{
    "code": "rest_upload_no_content_disposition",
    "message": "No se ha facilitado la disposición de contenido.",
    "data": {
        "status": 400
    }
}

我们还没有看到一个明确的例子来说明如何做到这一点,我们在寻找解决方案的过程中迷失了方向。 谢谢!

尝试很多选择...最后我尝试使用 Indy TidHTTP 组件。它似乎工作正常!谢谢