2011-03-14 6 views
0

YAHOO Placemaker API에 POST 요청을 보낼 수있는 nodejs 클라이언트 응용 프로그램을 만들어야합니다. 나는 이것에 대해 지금까지 아무런 성과없이 1 일을 보냈다. Wireshark에서 http 패킷을 볼 수 있으며 불만도 없습니다.yahoo placemaker api에 nodejs 클라이언트를 만들 때 발생하는 문제

나는 다음과 같은 코드를 사용하고 있습니다 :

var http = require('http'); 

var options = { 
     host: 'wherein.yahooapis.com', 
     port: 80, 
     path: '/v1/document', 
     method: 'POST' 
}; 

var req = http.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
// res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk); 
    }); 
}); 
// write data to request body 
//req.end('documentURL=http://www.usfca.edu&documentType=text/html&outputType=xml&appid=MrIhH33V34GNOpw91rqJuijGeiLQ7l4hhlJXXt3fOTS0.jAUY8kqhu6SxMhy7J90OSWElw--'); 
req.write('documentURL%3Dhttp%3A//www.usfca.edu%26documentType%3Dtext/html%26outputType%3Dxml%26appid%3DMrIhH33V34GNOpw91rqJuijGeiLQ7l4hhlJXXt3fOTS0.jAUY8kqhu6SxMhy7J90OSWElw--'); 
req.end(); 

내가 PHP에서 동일한 작업을 수행하고 거기 작동합니다. 모든 제안을 부탁드립니다. expressjs에서 자체 서버를 실행하려고 할 때 비슷한 문제가 발생했습니다. 어떻게 든 위의 코드는 올바른 HTTP 요청을 생성하지 않습니다. 위의 코드는 NodeJs 문서에서 직접 가져온 것입니다.

Please Help !!

documentURL을 제외한 400 개의 HTTP 응답 코드가 있습니다. documentContent not found!

  • Lalith
+0

왜 당신은 자신의 질문에 의견을 게시하고 있습니까? 질문이 명확하지 않다고 생각하면 주저하지 말고 답변을 기꺼이 도울 수있는 관련 정보를 포함하십시오. –

답변

1

이상한 문제를 당신의 인생을 단순화하고 방지하기 위해 Mikeal's request library 사용을 고려 :

또한
npm install request 

, #node.js으로 중지하고 빠른 응답을 질문. 발견 한 내용을 반드시보고하십시오.

1

Node.js http 요청은 적절한 헤더 Content-Type을 생성하지 않으므로 수동으로 추가하십시오. 지금까지 익스프레스가 필요하지 않습니다 ...

var options = { 
    host: 'wherein.yahooapis.com', 
    port: 80, 
    method: 'POST', 
    path: '/v1/document', 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded' 
    } 
};