2017-02-13 4 views
1

ich eine Anfrage an einen public colour analysis API machen wollen:Request To API gelingt es, Browser aber nicht von dem Knoten

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

Wenn ich diese URL-Adressleiste in Chrome setzen, bekomme ich ein Objekt JSON nach etwa zurück 10 Sekunden, aber wenn ich die Anfrage von Node bekomme, bekomme ich immer nur einen ESOCKETTIMEDOUT Fehler.

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 
}); 

Was könnte diesen Fehler verursachen?

Antwort

0

Ich würde vermuten, dass es weil Sie keinen User Agent in den Headern haben.

Vielleicht versuchen:

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'} 
}); 

Vielleicht benötigen Sie den User-Agent-String aus Ihrem Browser zu kopieren. Eine andere mögliche Lösung könnte ein fehlerfreies Cookie usw. sein. Sind Sie sicher, dass Sie berechtigt sind, diesen Endpunkt zu treffen?

Sehen Sie diese Antwort für weitere Informationen:

+0

Danke für die Vorschläge. Ich habe es mit mehreren User-Agenten versucht, alle mit den gleichen Ergebnissen und der Endpunkt ist definitiv öffentlich. – Undistraction

Verwandte Themen