단순히 토큰을 POST하는 자동 가입 API를 작성하려고합니다. Sinatra에서 매우 쉽게이 작업을 수행 할 수 있습니다 (POST 된 JSON을 AWS에서 렌더링). Express에서 어려움을 겪고있는 것 같습니다. 내가 1000X 조합을 시도했지만 그것은 단지 내가 바보짓 한 무언가라고 확신한다.AWS SNS webservice subscription - 명시 적 문제, sinatra 예
# application.rb
require 'rubygems'
require 'sinatra'
require 'json'
set :port, 8081
post '/webservice/cloudwatch' do
content_type :json
puts "Body: " + request.body.read
end
로그 : 여기
- -> /webservice/cloudwatch
Body: {
"Type" : "SubscriptionConfirmation",
"MessageId" : "OMIT",
"Token" : "OMIT",
"TopicArn" : "OMIT",
"Message" : "OMIT",
"SubscribeURL" : "OMIT",
"Timestamp" : "2012-02-28T21:28:02.082Z",
"SignatureVersion" : "1",
"Signature" : "OMIT",
"SigningCertURL" : "OMIT"
}
를 익스프레스 웹 서버입니다 :
var express, app, stache;
express = require("express"), app = express.createServer();
app.configure(function() {
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(app.router);
app.set("view options", {
layout: false
});
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.post("/webservice/cloudwatch", function (request, response) {
request.accepts('application/json');
console.log("post body: " + JSON.stringify(request.params));
console.log("post body: " + JSON.stringify(request.body.read));
});
app.listen(8081);
기록합니다
post body: []
post body: undefined
,536,913을 여기
은시나 웹 서버입니다
도와주세요!
대신'에'console.log' 일을 : request.rawbody에게로
감사 로깅 시도 어떤 속성에 들어 있는지 확인하십시오. – Marshall
console.dir (request.body); 이 로그 {} –
console.dir (request.body.read); 이 로그는 정의되지 않음 –