MIDAS API Addon MIDAS API: Code Samples

Below are some example code fragments for common programming languages of how you could access the MIDAS API via HTTP Post requests.
In all of the following examples the "get_setting" API call is made in order to retrieve the current version of MIDAS.

Jump to language:

C#
using(WebClient client = new WebClient())
{
    System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
    parameters.Add("key", "your_api_key");
    parameters.Add("action", "get_setting");
    parameters.Add("setting", "version");
    byte[] responsebytes = client.UploadValues("https://your_midas_url/api.pl", "POST", parameters);
    string response = Encoding.UTF8.GetString(responsebytes);
}
C#
#include <iostream>
#include <string>
#include <sstream>
#include <curl/curl.h>

// Callback to store response data in a string
size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp)
{
    std::string* str = static_cast<std::string*>(userp);
    size_t totalSize = size * nmemb;
    str->append(static_cast<char*>(contents), totalSize);
    return totalSize;
}

int main()
{
    CURL* curl;
    CURLcode res;
    std::string response;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();

    if (curl)
    {
        std::string url = "https://your_midas_url/api.pl";
        std::string postFields = "key=your_api_key&action=get_setting&setting=version";

        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postFields.c_str());

        // Write response to string
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        // Perform the request
        res = curl_easy_perform(curl);

        if (res != CURLE_OK)
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        else
            std::cout << "Response: " << response << std::endl;

        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
    return 0;
}
Go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
    "net/http"
)

func main() {
    values := map[string]string{"key":"your_api_key","action":"get_setting","setting":"version"}
    json_data, err := json.Marshal(values)
    if err != nil {
        log.Fatal(err)
    }
    resp, err := http.Post("https://your_midas_url/api.pl", "application/json",
        bytes.NewBuffer(json_data))
    if err != nil {
        log.Fatal(err)
    }
    var res map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&res)
    fmt.Println(res["json"])
}
Java
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("https://your_midas_url/api.pl");

List<NameValuePair> params = new ArrayList<NameValuePair>(3);
params.add(new BasicNameValuePair("key", "your_api_key"));
params.add(new BasicNameValuePair("action", "get_setting"));
params.add(new BasicNameValuePair("setting", "version"));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
    InputStream instream = entity.getContent();
    try {
        // process response
    } finally {
        instream.close();
    }
}
jQuery
$.post("https://your_midas_url/api.pl", { key: "your_api_key", action: "get_setting", setting: "version" })
.done(function(response) {
 alert("Response: " + response);
}, "JSON");
.NET
using System;
using System.Collections.Specialized;
using System.Net;

public static class Http
{
    public static byte[] Post(string uri, NameValueCollection pairs)
    {
        byte[] response = null;
        using (WebClient client = new WebClient())
        {
            response = client.UploadValues(uri, pairs);
        }
        return response;
    }
}
var response = Http.Post("https://your_midas_url/api.pl", new NameValueCollection() {
    { "key", "your_api_key" },
    { "action", "get_setting" },
    { "setting", "version" }
});
Perl
use LWP::UserAgent;
my$ua = LWP::UserAgent->new(env_proxy => 0,keep_alive => 0,timeout => 30,agent =>'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.0)');
my$request = $ua->post("https://your_midas_url/api.pl", [key => "your_api_key", action => "get_setting",setting=>"version"]);
if ($request->is_success) {
	$response=$request->content;
}
PHP
$parameters = "key=your_api_key&action=get_setting&setting=version";
$ch = curl_init("https://your_midas_url/api.pl");
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $parameters);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec( $ch );
Python
import urllib
import urllib2
parameters = {'key' : 'your_api_key',
          'action' : 'get_setting',
          'setting' : 'version' }
data = urllib.urlencode(parameters)
req = urllib2.Request("https://your_midas_url/api.pl", data)
getresponse = urllib2.urlopen(req)
response = getresponse.read()
 
Ruby
require "net/http"
require "uri"

uri = URI.parse("https://your_midas_url/api.pl")

response = Net::HTTP.post_form(uri, {"key" => "your_api_key", "action" => "get_setting", "setting" => "version"})