title: How to invoke a remote REST service in NiFi
body: <p>Is it possible to use xmlHttpRequest in NIFI processor to invoke remote rest service? In my case the <code>ExecuteScript</code> processor (using Javascript) can't evaluate <code>XMLHttpRequest</code>; is there any similar solution I can use to get  response data?</p>
  
  <pre><code>var OutputStreamCallback = Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
  var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
  
  Date.prototype.isValid = function () {
      return (Object.prototype.toString.call(this) === "[object Date]")
          &amp;&amp; !isNaN(this.getTime());
  };
  
  var flowFile = session.get();
  
  if (flowFile != null) {
      var fromDate = flowFile.getAttribute('fromDate')
      var uid = flowFile.getAttribute('uid')
  
      var xmlhttp = null;
      var result = null;
  
          xmlhttp = new XMLHttpRequest();
          if (typeof xmlhttp.overrideMimeType != 'undefined') {
              xmlhttp.overrideMimeType('application/json');
  
      } else if (window.ActiveXObject) {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.open('GET', "similar url here WorkInfo?dateFrom=?&amp;uid=?", true);
      xmlhttp.send(dateFrom, uid);
      if (xmlhttp.status == 200) {
          result = 'WorkInfoDate'
      }
      flowFile = session.putAttribute(flowFile, 'filename', fromDate + '_' + result);
  
      flowFile = session.write(flowFile,
          new OutputStreamCallback(function (outputStream) {
              outputStream.write(command.getBytes(StandardCharsets.UTF_8))
          }));
  
      session.transfer(flowFile, REL_SUCCESS)
  }
  </code></pre>