6 Replies Latest reply on Jan 12, 2018 12:16 PM by Roger Palmen

    EncodeURI incompatible with PI Web API?

    Roger Palmen

      Hi all,

       

      Did a surprising find. I used to use encodeURI for the individual calls going into the PI Web API:

      var getDataStreamURL = encodeURI(PIWebAPIURL + "streams/" + datastream.WebID + "/interpolatedattimes?time={0}");
      

       

      But the replacement of the {0} by %7B0%7D" caused the following error to return for the individual call:

      '{0}' is not a valid timestamp.

       

      Just bypassing the encodeURI works just fine:

      var getDataStreamURL = PIWebAPIURL + "streams/" + datastream.WebID + "/interpolatedattimes?time={0}";
      

       

      For additional reference, the call is eventually made by:

                              //Add to batch call
                              batchRequest[index+1] = {
                                  'Method': 'GET',
                                  'RequestTemplate': { 'Resource': getDataStreamURL },
                                  'ParentIDs': ['0'], //link to first batch call
                                  'Parameters': ['$.0.Content.Items[*].Timestamp'] //map to timestamp of first batch call
                              }
      

      and

                  var batchURL = JSON.stringify(batchRequest)
                  var promise = $http.post(PIWebAPIURL + 'batch', batchURL, { withCredentials: true });
      

       

      Any suggestions how i need to see this?