[英]How do you get node using npm request module to work that currently works in Postman?
首先,有許多問題與此類似,但沒有一個問題解決了我的問題。
Windows 10 x64節點12.6.0請求2.88.0 Postman 7.2.2
郵遞員具有為npm請求生成代碼的功能。
郵差工作正常並返回數據。 在代碼中,帖子工作,並且正文返回api信息,但沒有數據。
這是我正在使用的代碼
var request = require("request");
var options = { method: 'POST',
url: 'https://www.netflix.com/api/shakti/v73fa49e3/pathEvaluator',
qs:
{ drmSystem: 'widevine',
isWatchlistEnabled: 'false',
isVolatileBillboardsEnabled: 'true',
falcor_server: '0.1.0',
withSize: 'true',
materialize: 'true' },
headers:
{ 'cache-control': 'no-cache',
'Content-Length': '754',
Host: 'www.netflix.com',
'Cache-Control': 'no-cache',
'X-Netflix.browserName': 'Chrome',
'X-Netflix.osVersion': '10.0',
'X-Netflix.playerThroughput': '58194',
Referer: 'https://www.netflix.com/browse/my-list',
Accept: '*/*',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
'X-Netflix.esnPrefix': 'NFCDCH-02-',
'X-Netflix.uiVersion': 'v73fa49e3',
'X-Netflix.browserVersion': '75',
Connection: 'keep-alive',
'X-Netflix.clientType': 'akira',
'Accept-Language': 'en-US,en;q=0.9,es;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
DNT: '1',
'X-Netflix.osFullName': 'Windows 10',
Origin: 'https://www.netflix.com' },
form:
{ path:
[ '["mylist",["id","length","name","requestId","trackIds"]]',
'["mylist",{"from":0,"to":400},["availability","availabilityEndDateNear","delivery","interactiveBookmark","maturity","numSeasonsLabel","queue","releaseYear","runtime","seasonCount","summary","title","userRating","userRatingRequestId"]]',
'["mylist",{"from":0,"to":400},"current",["hasAudioDescription","summary"]]',
'["mylist",{"from":0,"to":400},"boxarts","_233x131","webp"]' ],
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
這可能對你有幫助。
const request = require("request");
// URL
const reqUrl = 'https://www.netflix.com/api/shakti/v73fa49e3/pathEvaluator';
// HEADERS
const reqHeaders = {
'cache-control': 'no-cache',
'Content-Length': '754',
Host: 'www.netflix.com',
'Postman-Token': '845e51a3-67cf-4d93-8518-997a7e22f4b7,edf531a3-056c-493e-86b4-3003504214ff',
'Cache-Control': 'no-cache',
'X-Netflix.browserName': 'Chrome',
'X-Netflix.osVersion': '10.0',
'X-Netflix.playerThroughput': '58194',
Referer: 'https://www.netflix.com/browse/my-list',
Accept: '*/*',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
'X-Netflix.esnPrefix': 'NFCDCH-02-',
'X-Netflix.uiVersion': 'v73fa49e3',
'X-Netflix.browserVersion': '75',
Connection: 'keep-alive',
Cookie: 'memclid=0abfdde3-fdf8-4e6e-acc5-dae57e09941d; clSharedContext=7461c7cc-5a56-4e5f-b733-6febb8acd74e; lhpuuidh-browse-JGKS7R3LLZAC5M5AEZ5UK2FYIQ=US%3AEN-US%3A5f656cb6-ec81-4ffe-84b1-63a759e1f49b_ROOT; lhpuuidh-browse-JGKS7R3LLZAC5M5AEZ5UK2FYIQ-T=1562281011685; lhpuuidh-browse-vvvvvrrerr=US%3AEN-US%3Abdfaa1e1-6464-4f31-bd4e-1c3e1c1d8a39_ROOT; lhpuuidh-browse-SN75QUHUXBHIAR23$TOJ3MZFVNQ7VYM-T=1562281110358; flwssn=8acee0b3-44c5-47ca-83ca-d6df6812aae6; profilesNewSession=0; NetflixId=v%3D2%26c$t3DBQAOAAEBEG4pPrNrBZszdxk8h2J8z1-BwG9mHUGvDRv7ORSv67vAlP-SdTbWM7Nx0lORLEed8a5yNR37Ws-WNM9SGe27SaTdJVqavU0oXha4WaZ0BWfDqu_6jQVvSXK0448K3QbpZ_QdubFfWu0h0SFXFxvXYR5cS-ks0bg7SF4V8iLC15QA-Lr7f354xZWDdAWV1xEYPVT06ptRRqi7g1cLE778U9WP9LCJYARWmuFPlxGVe4cmwxhQRGShu5IN6ucYcSe4OEJL-Ew1Yxd5mk4_0fhzkf05QAnirTzm5BpP7h07p06D3ZOdOzGsBlI-fV51g9eXvlA1kTL7irOJ6nq6NaXz1L397kEjcEvpgcCS5pslq3a9qEQ60KOathphl5GLZGxn4xvXIcx5Hm8cfs4iVng1kn9elzavpq9AbE8ce9pbbS82IF16MlOcVwICJXB9z_TNZ9ejkmMtACl8mKmJoXBZIRYZJXCbE0wcj-R4WQKZDqQJvWsPb_3a0PQBGoZojZ8pbdM3LUf21uxPBbFa8xmikLTMUM6FMbrMhpNqJ9tiQ5X2eAqtaeRHb3f7Dooz-E04hw9Or5_UaeX9264Rc6xtHpjDDfgg57LCza3BohNv3ag14Es.%26bt%3Ddbl%26ch%3DAQEAEAABABTq8jfw7-uqTNfPp2rJYz9aGgfupIDvmNU.%26mac%3DAQEAEAABABTp8m22vbAq4UFdbkSZ8fwNXxu5lA2rUaQ.; SecureNetflixId=v%3D2%26mac%3DAQEAEQABABRFqE_Sb9qJah1InM9FBWZTOIDUlQqiX8s.%26dt%3D1562307985579; nfvdid=BQFmAAEBEBhpAs5prG2e%2FuSxGlzoowlgHvZPo5LP%2F2%2BADgwBZrcGgdZwsfNb0vdVGKri8rGJwZ8gD9CRQs66NlMtqB3G%2FZYyTtnkl9qZoWp9AUfIhhmJPVbVTcsWX9j3ohgTuunD58WRtFBLFwu4HRlh2f70lszp; playerPerfMetrics=%7B%22uiValue%22%3A%7B%22throughput%22%3A59173%7D%2C%22mostRecentValue%22%3A%7B%22throughput%22%3A59173%7D%7D; cL=1562307988270%7C156230796458086017%7C156230796487562712%7C%7C8%7CTR7OX5P3Z5DY3DVRBZH7CZQVDI,memclid=0abfdde3-fdf8-4e6e-acc5-dae57e09941d; clSharedContext=7461c7cc-5a56-4e5f-b733-6febb8acd74e; lhpuuidh-browse-JGKS7R3LLZAC5M5AEZ5UK2FYIQ=US%3AEN-US%3A5f656cb6-ec81-4ffe-84b1-63a759e1f49b_ROOT; lhpuuidh-browse-JGKS7R3LLZAC5M5AEZ5UK2FYIQ-T=1562281011685; lhpuuidh-browse-SN75QUHUXBHITOJ3MZFVNQ7VYM=US%3AEN-US%3Abdfaa1e1-6464-4f31-bd4e-1c3e1c1d8a39_ROOT; lhpuuidh-browse-SN75QUHUXBHITOJ3MZFVNQ7VYM-T=1562281110358; flwssn=8acee0b3-44c5-47ca-83ca-d6df6812aae6; profilesNewSession=0; NetflixId=v%3D2%26ct%3DBQAOAAEBEG4pPrNrBZszdxk8h2J8z1-BwG9mHUGvDRv7ORSv67vAlP-SdTbWM7Nx0lORLEed8a5yNR37Ws-WNM9SGe27SaTdJVqavU0oXha4WaZ0BWfDqu_6jQVvSXK0448K3QbpZ_QdubFfWu0h0SFXFxvXYR5cS-ks0bg7SF4V8iLC15QA-Lr7f354xZWDdAWV1xEYPVT06ptRRqi7g1cLE778U9WP9LCJYARWmuFPlxGVe4cmwxhQRGShu5IN6ucYcSe4OEJL-Ew1Yxd5mk4_0fhzkf05QAnirTzm5BpP7h07p06D3ZOdOzGsBlI-fV51g9eXvlA1kTL7irOJ6nq6NaXz1L397kEjcEvpgcCS5pslq3a9qEQ60KOathphl5GLZGxn4xvXIcx5Hm8cfs4iVng1kn9elzavpq9AbE8ce9pbbS82IF16MlOcVwICJXB9z_TNZ9ejkmMtACl8mKmJoXBZIRYZJXCbE0wcj-R4WQKZDqQJvWsPb_3a0PQBGoZojZ8pbdM3LUf21uxPBbFa8xmikLTMUM6FMbrMhpNqJ9tiQ5X2eAqtaeRHb3f7Dooz-E04hw9Or5_UaeX9264Rc6xtHpjDDfgg57LCza3BohNv3ag14Es.%26bt%3Ddbl%26ch%3DAQEAEAABABTq8jfw7-uqTNfPp2rJYz9aGgfupIDvmNU.%26mac%3DAQEAEAABABTp8m22vbAq4UFdbkSZ8fwNXxu5lA2rUaQ.; SecureNetflixId=v%3D2%26mac%3DAQEAEQABABRFqE_Sb9qJah1InM9FBWZTOIDUlQqiX8s.%26dt%3D1562307985579; nfvdid=BQFmAAEBEBhpAs5prG2e%2FuSxGlzoowlgHvZPo5LP%2F2%2BADgwBZrcGgdZwsfNb0vdVGKri8rGJwZ8gD9CRQs66NlMtqB3G%2FZYyTtnkl9qZoWp9AUfIhhmJPVbVTcsWX9j3ohgTuunD58WRtFBLFwu4HRlh2f70lszp; playerPerfMetrics=%7B%22uiValue%22%3A%7B%22throughput%22%3A59173%7D%2C%22mostRecentValue%22%3A%7B%22throughput%22%3A59173%7D%7D; cL=1562307988270%7C156230796458086017%7C156230796487562712%7C%7C8%7CTR7OX5P3Z5DY3DVRBZH7CZQVDI; memclid=0abfdde3-fdf8-4e6e-acc5-dae57e09941d; SecureNetflixId=v%3D2%26mac%3DAQEAEQABABSBtymZf_WUUxqlLjxi9Tcz1N9HfVu27lk.%26dt%3D1562373989602; NetflixId=ct%3DBQAOAAEBENa9KbSSXAiVkZ-nyrCx-eqB4E5bZ_0MPQueZB7vgCnv5dv90cB7Lw9mzIa4SiUj09G9TjdSTfh56B6WIBR0QhsgE99T2rPoDs0iKPhegsCl20lLNc8LFYmhH1duOYA09lPXxaW7fjFea3v7KdbVhEkoCQKMJ5XM4G6vuMmMMUWGnqftt8Fa7xGmgxsrZBYxLhyqA_EC0YKIIlXeNC2kzcc7igTTU1LPIgQmvq-eOkskaCnkfX995ZzIj1yrcXa6xEIprO7E2buzF0nnDcqiiLwDwWNOF_DNCiyHxT9SbBTeaacoAHVI4iXnZ3HY4GVHJuq7gJEtGR8fwraPVyCIc5jeiFu1FXdKogro5w22TrQNNQU-eDBEBoLImmk1pZqBwbSYVrsk86JkqGtWmuxFGyyBTmTSyrfhcETUDOSPvveWCaiBA617rqOTP7n8UbfBnWDCoDS1FCweAGM1K_7JVOY3f7Bo6CVUvLODKutGsuXar9GiOmPoCJMiCO-MCnda3BS-oqROhm5nOEL5rCWRlxlIgn8vrQB5ELWADX3qwwSEi7yTZ-hHaQSI5xIkqFcgeH0LT27fpxdrz01jlZ2o1glDQhBKoO34WTmllvCDQzqcBL7_nNaE4Y9I30N00O18pBXIgHYloRDnOUUxV66_9AxBiw..%26bt%3Ddbl%26ch%3DAQEAEAABABTq8jfw7-uqTNfPp2rJYz9aGgfupIDvmNU.%26v%3D2%26mac%3DAQEAEAABABQmYnZZPVCzzqbysYph9oT_ddbBqaBhqLM.',
'X-Netflix.osName': 'Windows',
'x-netflix.request.client.user.guid': 'JGKS7R3LLZAC5M5AEZ5UK2FYIQ',
'X-Netflix.clientType': 'akira',
'Accept-Language': 'en-US,en;q=0.9,es;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
DNT: '1',
'X-Netflix.osFullName': 'Windows 10',
Origin: 'https://www.netflix.com'
};
// QUERY PARAMS
const queryParams = {
drmSystem: 'widevine',
isWatchlistEnabled: 'false',
isVolatileBillboardsEnabled: 'true',
falcor_server: '0.1.0',
withSize: 'true',
materialize: 'true',
};
// REQ BODY
const reqBody = {
path:
['["mylist",["id","length","name","requestId","trackIds"]]',
'["mylist",{"from":0,"to":400},["availability","availabilityEndDateNear","delivery","interactiveBookmark","maturity","numSeasonsLabel","queue","releaseYear","runtime","seasonCount","summary","title","userRating","userRatingRequestId"]]',
'["mylist",{"from":0,"to":400},"current",["hasAudioDescription","summary"]]',
'["mylist",{"from":0,"to":400},"boxarts","_233x131","webp"]'],
authURL: '1562307985945.HbhvPp8+bh2fI7XfVLhH3Dj6zJc='
}
// OPTIONS
const options = {
method: 'POST',
url: reqUrl,
headers: reqHeaders,
qs: queryParams,
body: qs.stringify(reqBody),
json: true,
};
request(options, (error, response, resBody) => {
if (error) {
throw error;
} else if (response.statusCode !== 200) {
throw resBody;
}
return resBody;
});
我解決了這個問題。 api期望數據在字符串化的正文查詢字符串中。
為此,請從請求中刪除表單變量。 然后將表單變量的值字符串化並將其作為主體發送
工作代碼:
var request = require('request');
var qs = require('querystring')
var dataString = qs.stringify({
path:
['["mylist",["id","length","name","requestId","trackIds"]]',
'["mylist",{"from":0,"to":400},["availability","availabilityEndDateNear","delivery","interactiveBookmark","maturity","numSeasonsLabel","queue","releaseYear","runtime","seasonCount","summary","title","userRating","userRatingRequestId"]]',
'["mylist",{"from":0,"to":400},"current",["hasAudioDescription","summary"]]',
'["mylist",{"from":0,"to":400},"boxarts","_233x131","webp"]'],
})
var headers = {
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.9,es;q=0.8',
'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded',
'DNT': '1',
'Origin': 'https://www.netflix.com',
'Postman-Token': '9aceb650-3446-4d39-8234-b503138fd065',
'Referer': 'https://www.netflix.com/browse/my-list',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
'X-Netflix.browserName': 'Chrome',
'X-Netflix.browserVersion': '75',
'X-Netflix.clientType': 'akira',
'X-Netflix.esnPrefix': 'NFCDCH-02-',
'X-Netflix.osFullName': 'Windows 10',
'X-Netflix.osName': 'Windows',
'X-Netflix.osVersion': '10.0',
'X-Netflix.playerThroughput': '58194',
'X-Netflix.uiVersion': 'v73fa49e3',
'cache-control': 'no-cache',
'Cookie': 'Cookie23werwetertert';
//var dataString = 'path=%5B%22mylist%22%2C%5B%22id%22%2C%22length%22%2C%22name%22%2C%22requestId%22%2C%22trackIds%22%5D%5D&path=%5B%22mylist%22%2C%7B%22from%22%3A0%2C%22to%22%3A400%7D%2C%5B%22availability%22%2C%22availabilityEndDateNear%22%2C%22delivery%22%2C%22interactiveBookmark%22%2C%22maturity%22%2C%22numSeasonsLabel%22%2C%22queue%22%2C%22releaseYear%22%2C%22runtime%22%2C%22seasonCount%22%2C%22summary%22%2C%22title%22%2C%22userRating%22%2C%22userRatingRequestId%22%5D%5D&path=%5B%22mylist%22%2C%7B%22from%22%3A0%2C%22to%22%3A400%7D%2C%22current%22%2C%5B%22hasAudioDescription%22%2C%22summary%22%5D%5D&path=%5B%22mylist%22%2C%7B%22from%22%3A0%2C%22to%22%3A400%7D%2C%22boxarts%22%2C%22_233x131%22%2C%22webp%22%5D&authURL=.%%3D';
var options = {
json: true,
url: 'https://www.netflix.com/api/shakti/v73fa49e3/pathEvaluator?drmSystem=widevine&isWatchlistEnabled=false&isVolatileBillboardsEnabled=true&falcor_server=0.1.0&withSize=true&materialize=true',
method: 'POST',
headers: headers,
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.