Skip to content

Instantly share code, notes, and snippets.

@jakeceballos
Last active February 25, 2022 13:46
Show Gist options
  • Save jakeceballos/24cd89351aa702a0ed174ca693af93ca to your computer and use it in GitHub Desktop.
Save jakeceballos/24cd89351aa702a0ed174ca693af93ca to your computer and use it in GitHub Desktop.
Mirth Connect - HTTP Request
var body = {}
var endpoint = 'https://localhost/';
var method = 'POST';
// Create connection
var url = new java.net.URL(endpoint);
var conn = url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod(method);
conn.setRequestProperty("Content-Type", "application/json");
// Send request
var outStream = conn.getOutputStream();
var outWriter = new java.io.OutputStreamWriter(outStream);
outWriter.write(body);
outWriter.close();
var inputStream = conn.getInputStream();
var streamReader = new java.io.InputStreamReader(inputStream);
var respStream = new java.io.BufferedReader(streamReader);
var buffer = new java.lang.StringBuffer();
var line = null;
while ((line = respStream.readLine()) != null) {
buffer.append(line);
}
respStream.close();
var result = buffer.toString();
@mochsner
Copy link

mochsner commented Feb 25, 2022

@jakeceballos yeah, I think you're right. I've ran into an issue with handling on this previous method. It works great otherwise (for my OAuth token generation), but my actual server requests appear to be... well, hard to diagnose issues for.

Trying to use something like below from https://stackoverflow.com/questions/61649942

var result;

// Using block level Java class imports
with (JavaImporter(
    org.apache.commons.io.IOUtils,
    org.apache.http.client.methods.HttpPost,
    org.apache.http.client.entity.UrlEncodedFormEntity,
    org.apache.http.impl.client.HttpClients,
    org.apache.http.message.BasicNameValuePair,
    com.google.common.io.Closer))
{
    var closer = Closer.create();
    try {
        var httpclient = closer.register(HttpClients.createDefault());
        var httpPost = new HttpPost('http://localhost:9919/myphpscript.php');
        // javascript array as java List
        var postParameters = [
            new BasicNameValuePair("firstname", "John"),
            new BasicNameValuePair("lastname", "Smith")
        ];

        // Rhino JavaBean access to set property
        // Same as httpPost.setEntity(new UrlEncodedFormEntity(postParameters, "UTF-8"));
        httpPost.entity = new UrlEncodedFormEntity(postParameters, "UTF-8");

        var response = closer.register(httpclient.execute(httpPost));
        // Rhino JavaBean access to get properties
        // Same as var is = response.getEntity().getContent();
        var is = closer.register(response.entity.content);
        result = IOUtils.toString(is, 'UTF-8');
    } finally {
        closer.close();
    }
}
logger.info(result);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment