Realizar login

O login é o primeiro método que deve ser utilizado pois ele é responsável por gerar a sessão que será utilizada em todas as requisições para o dispositivo. Neste exemplo, a requisição irá criar a sessão e armazená-la na variável session.

Como exemplo, o comando login pode possuir a URL:

http://192.168.0.129/login.fcgi

e os seguintes parâmetros:

{
    login: 'admin',
    password: 'admin'
}

O retorno do método de login é um json como o exemplo abaixo:

{
    "session":"apx7NM2CErTcvXpuvExuzaZ"
}

Os seguintes requisitos aplicam-se as solicitações de dados da API da linha Acesso:

Todos os comandos requerem uma sessão válida, exceto session_is_valid e login. Essa sessão deve ser reaproveitada para todas as requisições que você realizar para o equipamento.

O corpo da requisição deve possuir a codificação UTF-8. Caso os caracteres enviados não possuam nenhum caractere especial (ASCII), o corpo da requisição não precisa ser codificado.

Por padrão, a codificação utilizada por sistemas Windows é a Windows-1252 (também conhecida como CP-1252). Verificar como utilizar a codificação correta.

Exemplo de login em JavaScript

O exemplo abaixo pode ser usados para a familiarização utilizando as ferramentas de desenvolvedor - developer tools - do navegador:

$.ajax({
  url: "/login.fcgi",
  type: 'POST',
  contentType: 'application/json',
  data: JSON.stringify({
      login: 'admin',
      password: 'admin'
  }),
  success: function(data) {
      session = data.session;
  }
});

Para maiores detalhes sobre login, favor verificar o tópico GERENCIAMENTO SESSÃO.

Segue abaixo alguns exemplos que ilustram como a API pode ser usada em outras linguagens de programação. Nesses exemplos, o endereço 192.168.0.129, quando aparecer, representa o endereço IP do equipamento.

Atenção: a opção HTTP "Expect: 100- continue" deve estar desabilitada para as chamadas funcionarem. O único dos exemplos abaixo que o faz explicitamente é o em C#. Por favor, verifique a necessidade de fazê-lo em sua linguagem de preferência.

Exemplo de login em Delphi

procedure TFrmTTWebserviceTester.Button1Click(Sender: TObject);
var
    lJSO : ISuperObject;
    lRequest: TStringStream;
    lResponse: String;
begin
    lJSO := SO('{"login": "admin", "password": "admin"}');
    lRequest := TStringStream.Create(lJSO.AsString, TEncoding.UTF8);
    try
        IdHTTP.Request.ContentType := 'application/json';
        IdHTTP.Request.Charset := 'utf-8';
        try
            lResponse := IdHTTP.Post('http://192.168.0.129/login.fcgi', lRequest);
            ShowMessage(lResponse);
        except
            on E: Exception do
                ShowMessage('Error on request:'#13#10 + E.Message);
        end;
    finally
        lRequest.Free;
    end;
    lJSO := nil;
end;

Esse exemplo em Delphi utiliza a biblioteca de código aberto Indy.

Este manual tem por objetivo auxiliar o usuário na configuração e operação de seu equipamento.

Exemplo de login em Java

try {
  URL url = new URL("http://192.168.0.129/login.fcgi");
  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  conn.setRequestMethod("POST");
  conn.setRequestProperty("Content-type", "application/json");
  conn.setDoInput(true);
  conn.setDoOutput(true);

  OutputStream os = conn.getOutputStream();
  os.write("{\"login\":\"admin\",\"password\":\"admin\"}".getBytes());

  if (conn.getResponseCode() != 200) {
  BufferedReader br = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
    String output, result = "";
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
      result += output;
    }
    throw new RuntimeException("Failed : " + result);
  }

  BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

  String output;
  System.out.println("Output from Server .... \n");
  while ((output = br.readLine()) != null) {
    System.out.println(output);
  }
  conn.disconnect();
} catch (Exception e) {
  e.printStackTrace();
}

Exemplo de login em C#

System.Net.ServicePointManager.Expect100Continue = false;
try
{
  var request = (HttpWebRequest)WebRequest.Create("http://192.168.0.129/login.fcgi");
  request.ContentType = "application/json";
  request.Method = "POST";

  using (var streamWriter = new StreamWriter(request.GetRequestStream()))
  {
    streamWriter.Write("{\"login\":\"admin\",\"password\":\"admin\"}");
  }

  var response = (HttpWebResponse)request.GetResponse();
  using (var streamReader = new StreamReader(response.GetResponseStream()))
  {
    Console.WriteLine(streamReader.ReadToEnd());
  }
}
catch (WebException e)
{
  using (WebResponse response = e.Response)
  {
    HttpWebResponse httpResponse = (HttpWebResponse)response;
    Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
    using (Stream data = response.GetResponseStream())
    using (var reader = new StreamReader(data))
    {
      string text = reader.ReadToEnd();
      Console.WriteLine(text);
    }
  }
}

Exemplo de login em C# c/ RestSharp

Para o desenvolvimento do exemplo está sendo utilizado a biblioteca RestSharp.

using System;
using RestSharp;
namespace ExampleToDevelopment
{
    class Program
    {
        public string Session()
        {
            var client = new RestClient("http://192.168.2.183/login.fcgi");
            var request = new RestRequest(Method.POST);
            request.AddHeader("content-type", "application/json");
            request.AddParameter("application/json", "{\"login\": \"admin\", \"password\": \"admin\"}", ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            return response.Content;
        }
    }
}