title: TransportError: HTTP Error 400: Bad Request While Using SUDS (Python)
body: <p>I'm getting this error while trying to access a WS using SUDS in Python.</p>
  
  <p>Any idea of what am I doing wrong? (Yes, I'm quite new to Python)</p>
  
  <p><strong>Python Code</strong></p>
  
  <pre><code># -*- coding: utf-8 -*-
  
  from suds.client import Client
  from apscheduler.scheduler import Scheduler
  import datetime
  import logging
  from email.header    import Header
  from email.mime.text import MIMEText
  from email.mime.application import MIMEApplication
  from email.mime.multipart import MIMEMultipart
  from smtplib         import SMTP_SSL
  from colorlog import ColoredFormatter
  
  # Configurações do Log
  logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d/%m/%Y %H:%M:%S', filename='ConfirmarPedidoSmsBroker-Test.log',level=logging.INFO)
  logging.getLogger().addHandler(logging.StreamHandler())
  now = datetime.datetime.now()
  
  #Informações para o consumo do WS
  WSDL_URL = "http://123.168.1.132:8084/abc-ws-provider/AbcBrokerBSv1.0?wsdl"
  
  #Criações dos tipos para gerar o objeto complexo
  class Evale(object):
      codigoDeAutorizacao = 1234567
  
  class Cliente (object):
      identificacaoDoCliente = 12345
      codigoDoCliente = 101010
      razaoSocial = "None"
  
  class Telefone (object):
      ddd = 21
      numero = 1234-5678
  
  class Contato (object):
      telefone = Telefone()
  
  class HorariosDeAtendimento (object):
      diaDaSemana = "Sunday"
      horaInicial = "07:30:00"
      horaFinal = "20:00:00"
  
  class TipoDeAtendimentoRealizado (object):
      horariosDeAtendimento = HorariosDeAtendimento()
  
  class Revenda (object):
      cliente = Cliente()
      identificacaoDoEndereco = 987654
      codigoDoEndereco = 8765567
      numeroDoDocumento = "2312341"
      filialDoDocumento = 0009
      digitoDoDocumento = 32
  
  class RevendaPrincipal(object):
      revenda = Revenda()
  
  class RevendaAlternativa(object):
      revenda = Revenda()
  
  class EnderecoDoSolicitante(object):
      logradouro = "Street Test"
      numeroDoEndereco = 80
      complemento = "Penth"
      municipio = "New York"
      bairro = "Brooklin"
      cep = "74123"
      estado = "NY"
  
  class PedidoSms(object):
      identificacaoDaTransacao = 1010
      evale = Evale()
      revendaPrincipal = RevendaPrincipal()
      revendaAlternativa = RevendaAlternativa()
      enderecoDoSolicitante = EnderecoDoSolicitante()
      latitudeDoEnderecoDoSolicitante = -92.123443
      longitudeDoEnderecoDoSolicitante = -81.98765
  
  class ConfirmarPedidoSmsBrokerRequest(object):
      pedidoSms = PedidoSms()
  
  class ConfirmarPedidoSmsBroker_InputVariable (object):
      confirmarPedidoSmsBrokerRequest = ConfirmarPedidoSmsBrokerRequest()
  
  class Input (object):
      confirmarPedidoSmsBroker_InputVariable = ConfirmarPedidoSmsBroker_InputVariable()
  
  
  # Método que chama o serviço
  def sendRequestToService():
      confPedido = Input()
      logging.info("ConfirmarPedidoSmsBroker-Test at " + str(now))
      logging.info("WSDL_URL " + WSDL_URL)
      logging.info("Passing URL to Client")
      client = Client(WSDL_URL)
      logging.info("Trying to access the service")
      response = client.service.confirmarPedidoSmsBroker(confPedido)
      logginf.info(response)
  
  
  if __name__ == '__main__':
      sendRequestToService()
  </code></pre>
  
  <p><strong>And this is the error that I get whenever I try to run it.</strong></p>
  
  <pre><code>06/02/2014 17:06:17 - ConfirmarPedidoSmsBroker-Test at 2014-02-06 17:06:17.443663
  06/02/2014 17:06:17 - WSDL_URL http://111.168.1.132:8084/abc-ws-provider/AbcBrokerBSv1.0?wsdl
  06/02/2014 17:06:17 - Passing URL to Client
  06/02/2014 17:06:17 - Import:0x10ab61d10, imported schema (http://www.abcdef.com.br/Abab/BO/v3) at (http://123.168.1.132:8084/../../../../../Abc/Def/Somethingv3.xsd), failed
  Traceback (most recent call last):
    File "build/bdist.macosx-10.9-intel/egg/suds/xsd/sxbasic.py", line 560, in download
      d = reader.open(url)
    File "build/bdist.macosx-10.9-intel/egg/suds/reader.py", line 79, in open
      d = self.download(url)
    File "build/bdist.macosx-10.9-intel/egg/suds/reader.py", line 95, in download
      fp = self.options.transport.open(Request(url))
    File "build/bdist.macosx-10.9-intel/egg/suds/transport/https.py", line 60, in open
      return  HttpTransport.open(self, request)
    File "build/bdist.macosx-10.9-intel/egg/suds/transport/http.py", line 64, in open
      raise TransportError(str(e), e.code, e.fp)
  TransportError: HTTP Error 400: Bad Request
  </code></pre>