2017-06-06 170 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