我试图调用API来发布使用 Delphi TRestRequest
组件的zip文件。如果我使用Postman,我会得到预期的结果。但是,如果我使用TRestRequest
,我会得到一个401 Unauthorized
错误。
在Postman中,我的请求是这样的:
开机自检https://docs.ixor.be/api/upload
内容类型:多部分/表单数据
访问令牌:
表单数据:
数据:(文件)documents.zip
类型:文档
参考:testref
在 Delphi 中,我的代码是这样的
SendFile := TMemoryStream.Create;
SendFile.LoadFromFile(bestand);
SendFile.Position := 0;
RESTClientIxor.BaseURL := 'https://docs.ixor.be/api/upload';
RESTRequestIxor.Params.Clear;
RESTRequestIxor.Params.AddItem('Access-token', '<token>', pkHTTPHEADER, [], ctNone);
RESTRequestIxor.Params.AddItem('Content-type','multipart/form-data', pkHTTPHEADER, [], ctNone);
RESTRequestIxor.Params.AddItem('reference', QFactuurproacc.AsString, pkREQUESTBODY, [], ctMULTIPART_FORM_DATA);
RESTRequestIxor.Params.AddItem('type', 'documents', pkREQUESTBODY, [],ctMULTIPART_FORM_DATA);
RESTRequestIxor.Params.AddItem('data', SendFile, pkFILE, [], ctMULTIPART_FORM_DATA);
RestRequestIxor.Method := rmPOST;
RESTRequestIxor.Execute;
字符串
有人知道我哪里做错了吗?
1条答案
按热度按时间mzillmmw1#
在您的情况下,尝试通过方法“RESTClientIxor.AddAuthParameter”或“RESTRequestIxor.AddAuthParameter”添加身份验证参数(令牌)来解决身份验证问题。这样,组件本身就可以以适当的方式处理参数。