如何使用 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 组件。它似乎工作正常!谢谢
我们有一个 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 组件。它似乎工作正常!谢谢