Delphi TRestrequest导致401 Unauthorized错误

a0x5cqrl  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(181)

我试图调用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;

字符串
有人知道我哪里做错了吗?

mzillmmw

mzillmmw1#

在您的情况下,尝试通过方法“RESTClientIxor.AddAuthParameter”或“RESTRequestIxor.AddAuthParameter”添加身份验证参数(令牌)来解决身份验证问题。这样,组件本身就可以以适当的方式处理参数。

相关问题