Sha256: cc02005755ab20671358f00e9fcd5eba83b440f615a650fff5eb594967683763
Contents?: true
Size: 1.71 KB
Versions: 4
Compression:
Stored size: 1.71 KB
Contents
require 'net/https' require 'uri' module Correios module CEP class WebService URL = 'https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente' def initialize @uri = URI.parse(URL) @proxy_uri = URI.parse(Correios::CEP.proxy_url) end def request(zipcode) http = build_http request = build_request(zipcode) Correios::CEP.log_request(request, uri.to_s) response = http.request(request) Correios::CEP.log_response(response) http.finish if http.started? response.body end private attr_reader :uri, :proxy_uri def build_http Net::HTTP.start( uri.host, uri.port, proxy_uri.host, proxy_uri.port, nil, nil, use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE, open_timeout: Correios::CEP.request_timeout, read_timeout: Correios::CEP.request_timeout ) end def build_request(zipcode) request = Net::HTTP::Post.new(uri.path) request['Content-Type'] = 'text/xml; charset=utf-8' request.body = request_body(zipcode) request end def request_body(zipcode) '<?xml version="1.0" encoding="UTF-8"?>' + '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cli="http://cliente.bean.master.sigep.bsb.correios.com.br/">' + '<soapenv:Header />' + '<soapenv:Body>' + '<cli:consultaCEP>' + "<cep>#{zipcode}</cep>" + '</cli:consultaCEP>' + '</soapenv:Body>' + '</soapenv:Envelope>' end end end end
Version data entries
4 entries across 4 versions & 1 rubygems