Skip to content

Instantly share code, notes, and snippets.

@Franco-Poveda
Last active February 7, 2018 19:23
Show Gist options
  • Save Franco-Poveda/c451edfd9280ea02fd3f65b71f7c38fb to your computer and use it in GitHub Desktop.
Save Franco-Poveda/c451edfd9280ea02fd3f65b71f7c38fb to your computer and use it in GitHub Desktop.
proof of concept: ANDRIANI "Consultar Sucursales" raw WS method call - using handlebars template engine && okHttp request library
package com.mycompany.manualws;
import com.github.jknack.handlebars.Handlebars;
import com.github.jknack.handlebars.Template;
import com.github.jknack.handlebars.io.FileTemplateLoader;
import com.github.jknack.handlebars.io.TemplateLoader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
*
* @author Franco Poveda (franco.poveda[at]gmail.com)
*/
public class AndrianiWS {
private final String USER_AGENT = "Mozilla/5.0";
private static final MediaType MEDIA_TYPE_PLAINTEXT = MediaType
.parse("text/plain; charset=utf-8");
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException, IOException {
TemplateLoader loader = new FileTemplateLoader("/src/res");
Handlebars handlebars = new Handlebars(loader);
Template template = handlebars.compile("sucursales");
String envelop = template.apply(new HashMap<String, Object>() {
{
put("pwd", "password");
put("usr", "usuario");
put("cp", "5515");
}
});//System.out.println(template.apply("ANDRIANI"));
OkHttpClient client = new OkHttpClient();
//.parse("text/plain; charset=utf-8");
Request request = new Request.Builder()
.url("https://sucursalespreprod.andreani.com/ws?wsdl=")
.post(RequestBody.create(MEDIA_TYPE_PLAINTEXT, envelop))
.addHeader("Cache-Control", "no-cache")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}
<dependencies>
<dependency>
<groupId>com.github.jknack</groupId>
<artifactId>handlebars</artifactId>
<version>4.0.6</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.9.1</version>
</dependency>
</dependencies>
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="urn:ConsultarSucursales"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns2="http://xml.apache.org/xml-soap"
xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
<env:Header>
<ns3:Security env:mustUnderstand="true">
<ns3:UsernameToken>
<ns3:Username>{{usr}}</ns3:Username>
<ns3:Password>{{pwd}}</ns3:Password>
</ns3:UsernameToken>
</ns3:Security>
</env:Header>
<env:Body>
<ns1:ConsultarSucursales env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<Consulta xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">consulta</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Localidad</key>
<value xsi:type="xsd:string">Maipu</value>
</item>
<item>
<key xsi:type="xsd:string">CodigoPostal</key>
<value xsi:type="xsd:string">{{cp}}</value>
</item>
<item>
<key xsi:type="xsd:string">Provincia</key>
<value xsi:type="xsd:string">Mendoza</value>
</item>
</value>
</item>
</Consulta>
</ns1:ConsultarSucursales>
</env:Body>
</env:Envelope>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment