2017-09-22 2 views
0

Ich versuche einfach, den REST-API-Endpunkt eines mit Azure erstellten maschinellen Lernexperiments aufzurufen. Ich halte diese Fehlermeldung bekommen:Azure Machine Learning-REST-API: keine Nachricht

{ 
    "error": { 
     "code": "BadArgument", 
     "message": "Invalid argument provided.", 
     "details": [ 
      { 
       "code": "RequestBodyInvalid", 
       "message": "No request body provided or error in deserializing the request body." 
      } 
     ] 
    } 
} 

ich es ausgesehen haben, auf ihre Dokumentation auf: https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-web-service-error-codes

Alles, was es sagt, ist, dass meine bod leer ist, bin ich nicht sicher, wie es leer sein kann, ist hier mein Code:

router.post('/rating/new', function(req, res) { 
    var postData = { 
     "Inputs": { 
      "input2": 
       [ 
        { 
         'Col1': "A11", 
         'Col2': "6", 
         'Col3': "A34", 
         'Col4': "A43", 
         'Col5': "1169", 
         'Col6': "A65", 
         'Col7': "A75", 
         'Col8': "4", 
         'Col9': "A93", 
         'Col10': "A101", 
         'Col11': "4", 
         'Col12': "A121", 
         'Col13': "67", 
         'Col14': "A143", 
         'Col15': "A152", 
         'Col16': "2", 
         'Col17': "A173", 
         'Col18': "1", 
         'Col19': "A192", 
         'Col20': "A201", 
         'Col21': "1", 
        } 
       ], 
     }, 
     "GlobalParameters": { 
     } 
    }; 

    // Configure the request 
    var options = { 
     url: config.ML_PREDICTIVE.url, 
     method: 'POST', 
     headers: { 
      'Content-Type':'application/json', 
      'Authorization':('Bearer ' + config.ML_PREDICTIVE.apiKey)}, 
     form: postData 
    } 

    console.log(JSON.stringify(options)); 

    // Start the request 
    request.post(options, function (error, response, body) { 
     if(error){ 
      res.status(403).send(error); 
     } 
     if(response.statusCode != 200){ 
      res.status(403).send(response.body); 
     } 
     if (!error && response.statusCode == 200) { 
      console.log(body) 
     } 
    }) 
}); 

Das einzige, was ich sehe, dass schief gehen könnte, ist, dass „Form“ in der Anfrage wird durch azur nicht Körper betrachtet, ich habe auch keinen Erfolg mit „Körper“ versucht.

Bitte helfen!

Antwort

0

Gemäß dem von Ihnen angegebenen Code ist die Variable postData keine gültige JSON-Zeichenfolge. Sie müssen die JSON.stringify()-Methode verwenden, um den Wert postData in eine JSON-Zeichenfolge zu konvertieren, bevor Sie eine POST-Anfrage senden.

Verwandte Themen