2017-06-06 122 views
0

我正在使用臭名昭着的request library发送请求。 其中一个请求需要我发送标头multipart/mixed; boundary={myboundary}拦截发送请求以更改请求库的标头

请求正在使用form-data library来处理此类请求,但它没有正确设置Content-Type标头。因此,我需要像这样设置:

let req = request.post({url: "https://..."}, formData: formData) 
req.setHeader('Content-Type', `multipart/mixed; boundary=${req.form().getBoundary()}`) 

很遗憾,我无法在激发请求后添加/更改任何标头。因此,我想知道是否有拦截发送的方法,以便我可以更改标题?

回答

0

您将需要使用multipart option而不是formData来使用其他任意multipart/*内容类型。 multipart数组中的每个对象都包含要在该部分中发送的标头。一个例外是body属性,该属性用作该部分的实际主体。

request.post({ 
    url: 'https://...', 
    multipart: [ 
    { 'X-Foo-Header': 'bar', body: 'baz' }, 
    // ... 
    ], 
    headers: { 'Content-Type': 'multipart/mixed' } 
}); 

边界应自动附加到现有的显式Content-Type标头。 This request test明确测试此行为。

+0

谢谢您查阅。按照您的建议,我仍然会收到状态码415。 – Hedge

+0

因此它似乎只适用于'multipart' API。我已经更新了示例并在本地进行了测试。 – mscdex