2016-04-26 2 views
0

Ich habe eine API mit Amazon API-Gateway eingerichtet und möchte Daten in Kinesis-Streams setzen. Amazon API Gateway hat eingebaute Unterstützung dafür. Aber wenn ich versuche, json Daten zu setzen, gibt es "Serialisierungsausnahme".wie JSON Daten mit Amazon API Gateway zu Kinesis Stream setzen

var data = {"ua_platform":"iPhone","ua_browsercodename":"Mozilla","ua_browserlanguage":"en-us","ua_header":"Mozilla\/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit\/601.1.46 (KHTML, like Gecko) Version\/9.0 Mobile\/13B143 Safari\/601.1","ua_browsername":"Netscape","key":"livestream_hindi",,"datetime_ut":"1458711871","datetime_dt":"2016-03-23","value":"15","source":"0","browser":"Mobile Safari-9.0.","os":"iOS-9.1.","device_detail":"iPhone Apple iPhone"}; 
    var json = JSON.stringify(data);  
var params = { 'ContentType' : 'application/json','Access-Control-Allow-Headers' : 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'}; 
    var body = {"Data":json, 
    "StreamName":"XXXXXX", 
    "PartitionKey":"XXXX" 
    }; 

Danach ich mache eine Put-Anfrage

apigClient.functionPut(params, body, additionalParams) 
    .then(function(result){ 
     //This is where you would put a success callback 
     console.log("success"); 
    }).catch(function(result){ 
     //This is where you would put an error callback 
     console.log("catch"); 
    }); 

Die api gibt 200 ok zusammen mit der Serialisierung Ausnahme. In der Put-Anfrage wird angegeben, dass der "Daten" -Schlüssel in der Körpervariablen nur den "Blob" -Typ akzeptiert. Jetzt habe ich auch versucht, JSON-Daten in BLOB zu konvertieren, aber überhaupt kein Glück.

Ich bin nicht in der Lage herauszufinden, was ich falsch mache. Bitte helfen Sie.

Antwort

Verwandte Themen