gpt4 book ai didi

node.js - 如何设置超测附件的Content-Type

转载 作者:太空宇宙 更新时间:2023-11-03 23:25:13 25 4
gpt4 key购买 nike

我在我的应用中遇到一个问题,如果文件是从 Microsoft Windows 发送的,则与上传的文件关联的 Content-Type 是错误的,给出 application/octet-stream code>,而如果从 Mac 发送则可以,给出 text/csv。将我的代码修复为不依赖请求中的 mime 类型后,我想在我的一个测试中模拟该条件。

给定以下请求,其中包括 JSON 字符串化表单字段和文件附件 using supertest :

  request(app)
.post('/some/where')
.field('someFormData', JSON.stringify(formData))
.attach('someFile', 'someFile.csv')
.expect(400)
.end(done);

如何更改附件的内容类型?查看 Edge 的“网络”选项卡,我希望看到上述请求的以下内容:

-----------------------------7e13121340602
Content-Disposition: form-data; name="someFormData"

{.............}
-----------------------------7e13121340602
Content-Disposition: form-data; name="someFile"; filename="someFile.csv"
Content-Type: application/octet-stream

ÿØÿà

(JSON字符串已用点省略)

(我想模拟错误的内容类型,而不是显示 text/csv。)

最佳答案

使用 Attach 的 contentType 选项对我有用:

request(app)
.post('/validateCertificate')
.set('Content-type', 'multipart/form-data')
.field('passphrase', '1234')
.attach(
'pfx',
'./src/build-request/test-certs/correct.pfx',
{ contentType: 'application/x-pkcs12' },
)
.expect(200))

或者,如果您将缓冲区作为文件发送:

request(app)
.post('/validateCertificate')
.set('Content-type', 'multipart/form-data')
.field('passphrase', '1234')
.attach(
'pfx',
buffer,
{ contentType: 'application/x-pkcs12', filename: 'correct.pfx' },
)
.expect(200))

关于node.js - 如何设置超测附件的Content-Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45200068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com