御世話になります。
node.jsでapiを利用してpost通信をしたいと考えています。
利用するapiは、ソラコムというサービスのapiになります。
ソラコムapi リファレンス
実行環境は、awsのlambdaになります。
node.jsに関して、lambdaの書き方に関して、あまり慣れていませんが、teratailの回答者様に助言を頂き、無事コード自体は成功しました。
しかし、apiとしての受け取る情報をうまく取得できませんでした。
apiとして取得する情報は、認証情報になります。
post通信で、メールアドレスとパスワードを送信すると、それに対する認証キーを発行してくれるものになります。
ソラコムapiリファレンスページでは、一番上のauthという項目になります。
実際に実行したコードが以下になります。
node.js
1// Generated by CoffeeScript 1.10.0 2var https; 3 4https = require('https'); 5 6exports.handler = function(event, context) { 7 var headers,payload,options,req; 8 9 headers = { 10 "Accept": "application/json" 11 }; 12 13 payload = { 14 "email":"登録したメールアドレス", 15 "password":"登録したパスワード" 16 }; 17 18 options = { 19 contentType: 'application/json', 20 method: 'POST', 21 hostname: 'api.soracom.io', 22 port: 443, 23 path: '/v1/auth' 24 }; 25 26 req = https.request(options, function(res) { 27 res.setEncoding('utf8'); 28 return res.on('data', function(d) { 29 console.log(d); 30 context.succeed(d); 31 }); 32 }); 33 req.on('error', function(e) { 34 context.fail(e.message); 35 }); 36 req.write(JSON.stringify(payload)); 37 req.end(); 38}; 39
このコードを実行すると、成功したという表示とともに、以下のメッセージが表示されました。失敗すると赤色で表示されるので、post自体はうまく出来たと考えています。
node.js
1"{\"code\":\"COM0009\",\"message\":\"This content type [application/octet-stream] is not supported. Supported content type:[application/octet-stream,text/plain,application/xml,text/xml,application/x-www-form-urlencoded,application/*+xml,multipart/form-data,application/json,application/*+json,*/*] \"}"
文字コードが異なるというメッセージなのですが、post通信で文字コードは選択しているため、どこか原因が分からない状態です。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。