2017-02-13 19 views
1

Я хочу, чтобы сделать запрос на public colour analysis API:Запрос на API преуспевает в браузере но терпит неудачу из узла

http://mkweb.bcgsc.ca/color-summarizer?url=http://www.undistraction.com/vangogh/images/fisherman_s_wife_on_the_beach-8.jpg&precision=vlow&num_clusters=7&json=1&histogram=0&pixel=0

Если я ставлю этот URL в адресную строку в Chrome, я получаю объект JSON вернулся после того, как о 10 секунд, однако, делая запрос от узла, я получаю только ошибку ESOCKETTIMEDOUT.

request.get({ 
    uri: 'http://mkweb.bcgsc.ca/color-summarizer?url=http://www.undistraction.com/vangogh/images/fisherman_s_wife_on_the_beach-8.jpg&precision=vlow&num_clusters=7&json=1&histogram=0&pixel=0', 
    timeout: 60000, 
}) 
.on('error', (error) => { 
    console.log(error); // ESOCKETTIMEDOUT 
}) 
.on('finish', (body) => { 
    // Happy place 
}); 

Что может быть причиной этой ошибки?

ответ

0

Я подозреваю, что это потому, что у вас нет агента пользователя в заголовках.

Может попробовать:

request.get({ 
    uri: 'http://mkweb.bcgsc.ca/color-summarizer?url=http://www.undistraction.com/vangogh/images/fisherman_s_wife_on_the_beach-8.jpg&precision=vlow&num_clusters=7&json=1&histogram=0&pixel=0', 
    timeout: 60000, 
    headers: {'User-Agent': 'Some user agent string'} 
}); 

Может быть, вам нужно скопировать строку агента пользователя из браузера. Другими возможными решениями могут быть не правильные файлы cookie и т. Д. Вы уверены, что у вас есть право ударить по этой конечной точке?

Смотрите этот ответ для получения дополнительной информации:

+0

Спасибо за предложения. Я пробовал с несколькими агентами пользователя, все с одинаковыми результатами, и конечная точка определенно общедоступна. – Undistraction