none
Calculo de Sedex (Para quem interessar)

    Question

  • Para quem precisar usar o calculo do sedex direto do site do correio usando tanto Encomenda Normal como Sedex, eu encontrei no site do Imasters uma materio do Walter Amorim, fazendo o calculo do sedex, so que precisava também de encomenda normal, então seguinte a logica que ele usou eu coloquei os dois calculos, para se alguem precisar ja esta ai.

    ******************************************************************************

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <title>frete</title>
      <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
      <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
     </HEAD>
     <body MS_POSITIONING="GridLayout">
      <form id="Form1" method="post" runat="server">
       <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 61px" runat="server"></asp:TextBox>
       <asp:TextBox id="TextBox2" style="Z-INDEX: 103; LEFT: 75px; POSITION: absolute; TOP: 31px" runat="server"></asp:TextBox>
       <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 10px; POSITION: absolute; TOP: 30px" runat="server" Text="Button"></asp:Button>
       <asp:DropDownList id="DropDownList1" style="Z-INDEX: 104; LEFT: 207px; POSITION: absolute; TOP: 10px" runat="server">
        <asp:ListItem Value="Sedex">Sedex</asp:ListItem>
        <asp:ListItem Value="Encomenda">Encomenda</asp:ListItem>
       </asp:DropDownList>
      </form>
     </body>
    </HTML>

    **********************************

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    'Iremos calcular o preço do SEDEX aqui.

    'Supondo que o CEP da loja seja 27330680,

    'que o peso do produto é de 1 quilo e 230 gramas,

    'que voce é pão duro e não quer usar o serviço de Mão Própria,

    'que você deseja receber um aviso de entrega da mercadoria,

    'e que a mercadoria vale R$120,40.

    If Me.DropDownList1.SelectedItem.Text.Trim = "Sedex" Then

    Try

    Dim preco As Decimal = CalculaSedex("04019000", Me.TextBox2.Text, 0.3, _

    False, False, 0)

    Me.TextBox1.Text = "O valor do frete é " & FormatCurrency(preco)

    Catch ex As Exception

    Me.TextBox1.Text = ex.Message

    End Try

    Else

    Try

    Dim preco As Decimal = CalculaEncomenda("04019000", Me.TextBox2.Text, 0.3, False, 1, False)

    Me.TextBox1.Text = "O valor do frete é " & FormatCurrency(preco)

    Catch ex As Exception

    Me.TextBox1.Text = ex.Message

    End Try

    End If

    End Sub

    Public Function CalculaSedex(ByVal cepOrigem As String, ByVal cepDestino As String, _

    ByVal peso As Decimal, ByVal MaoPropria As Boolean, _

    ByVal avisoRecebimento As Boolean, _

    Optional ByVal valorDeclarado As Decimal = 0.0) As Decimal

    'Cria uma requisição ao service dos correios, com os dados informados

    Dim Req As Net.WebRequest = Net.WebRequest.Create( _

    "http://www.correios.com.br/encomendas/precos/calculo.cfm?" & _

    "cepOrigem=" & cepOrigem & "&cepDestino=" & cepDestino & _

    "&peso=" & peso.ToString.Replace(",", ".") & "&resposta=xml")

    Dim Resp As Net.WebResponse = Req.GetResponse()

    Dim sr As New IO.StreamReader(Resp.GetResponseStream(), Encoding.UTF7)

    Dim ds As New Data.DataSet()

    'Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr)

    sr.Close()

    Resp.Close()

    If ds.Tables("erro").Rows(0).Item("codigo") <> 0 Then

    Throw (New Exception(ds.Tables("erro").Rows(0).Item("descricao").ToString))

    Else

    CalculaSedex = _

    ds.Tables("Dados_Postais").Rows(0).Item("preco_postal").ToString.Replace(".", ",")

    End If

    End Function

    Public Function CalculaEncomenda(ByVal cepOrigem As String, _

    ByVal cepDestino As String, _

    ByVal peso As Decimal, _

    ByVal MaoPropria As Boolean, _

    ByVal formato As Decimal, _

    ByVal avisoRecebimento As Boolean, _

    Optional ByVal altura As Decimal = 14, _

    Optional ByVal largura As Decimal = 14, _

    Optional ByVal comprimento As Decimal = 9, _

    Optional ByVal Tp_Servio As Decimal = 41017, _

    Optional ByVal valorDeclarado As Decimal = 0.0) As Decimal

    'Cria uma requisição ao service dos correios, com os dados informados

    Dim Req As Net.WebRequest = Net.WebRequest.Create( _

    "http://www.correios.com.br/encomendas/precos/calculo.cfm?" _

    & "&servico=" & Tp_Servio _

    & "&cepOrigem=" & cepOrigem _

    & "&cepDestino=" & cepDestino _

    & "&peso=" & peso.ToString.Replace(",", ".") _

    & "&Formato=" & formato _

    & "&Comprimento=" & comprimento _

    & "&Largura=" & largura _

    & "&Altura=" & altura _

    & "&resposta=xml")

    Dim Resp As Net.WebResponse = Req.GetResponse()

    Dim sr As New IO.StreamReader(Resp.GetResponseStream(), Encoding.UTF7)

    Dim ds As New Data.DataSet()

    'Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr)

    sr.Close()

    Resp.Close()

    If ds.Tables("erro").Rows(0).Item("codigo") <> 0 Then

    Throw (New Exception(ds.Tables("erro").Rows(0).Item("descricao").ToString))

    Else

    CalculaEncomenda = _

    ds.Tables("Dados_Postais").Rows(0).Item("preco_postal").ToString.Replace(".", ",")

    End If

    End Function

     

    ********************

     

    Link do Imasters de referencia

    http://www.imasters.com.br/artigo/4120/aspnet/calculando_fretes_em_sedex_com_aspnet

    Monday, July 17, 2006 6:18 PM

Answers

  • Montei uma classe em csharp, igualmente a quem interessar:

    clsCorreios.cs

    using System;

    using System.Data;

    public sealed class clsCorreios : System.IDisposable

    {

    public System.Data.DataSet BuscaCEP(string pCEP)

    {

    string vCorreiosURL = "http://www.bronzebusiness.com.br/webservices/wscep.asmx/cep?strcep=" + pCEP;

    System.Data.DataSet dsCorreios = new System.Data.DataSet();

    dsCorreios.ReadXml(GetURLStream(vCorreiosURL, "", "", "", ""));

    return dsCorreios;

    }

    private System.IO.Stream GetURLStream(string pURL, string pProxyAddress, string pProxyPort, string pProxyUserName, string pProxyPassword)

    {

    System.Net.WebRequest Request;

    System.Net.WebResponse Response;

    Request = System.Net.WebRequest.Create(pURL);

    System.Net.WebProxy wProxy = new System.Net.WebProxy("http://" + pProxyAddress + ":" + pProxyPort, true);

    wProxy.Credentials = new System.Net.NetworkCredential(pProxyUserName, pProxyPassword);

    if (pProxyAddress != "")

    Request.Proxy = wProxy;

     

    Response = Request.GetResponse();

    System.IO.Stream responseStream = Response.GetResponseStream();

    return responseStream;

    }

    public double CalculaSedex(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, bool pAvisoRecebimento)

    {

    return CalculaSedex(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pAvisoRecebimento, 0);

    }

    public double CalculaSedex(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, bool pAvisoRecebimento, double pValorDeclarado)

    {

    //Cria uma requisi‡Æo ao service dos correios, com os dados informados

    string vURL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?";

    vURL += "cepOrigem=" + pCEPOrigem + "&cepDestino=" + pCEPDestino;

    vURL += "&peso=" + pPeso.ToString().Replace(",", ".") + "&resposta=xml";

    System.Net.WebRequest Req = System.Net.WebRequest.Create(vURL);

    System.Net.WebResponse Resp = Req.GetResponse();

    System.IO.StreamReader sr = new System.IO.StreamReader(Resp.GetResponseStream(), System.Text.Encoding.UTF7);

    DataSet ds = new DataSet();

    //Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr);

    sr.Close();

    Resp.Close();

    if ((int)ds.Tables["erro"].Rows[0]["codigo"] != 0)

    {

    throw new Exception(ds.Tables["erro"].Rows[0]["descricao"].ToString());

    }

    else

    {

    return Convert.ToDouble(ds.Tables["Dados_Postais"].Rows[0]["preco_postal"].ToString().Replace(".", ","));

    }

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, 14, 14, 9, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, 14, 9, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, pLargura, 9, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura, double pComprimento)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, pLargura, pComprimento, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura, double pComprimento, double pTipoServico)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, pLargura, pComprimento, pTipoServico, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura, double pComprimento, double pTipoServico, double pValorDeclarado)

    {

    //Cria uma requisi‡Æo ao service dos correios, com os dados informados

    string vURL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?";

    vURL += "cepOrigem=" + pCEPOrigem + "&cepDestino=" + pCEPDestino;

    vURL += "&peso=" + pPeso.ToString().Replace(",", ".") + "&resposta=xml";

    vURL += "&servico=" + pTipoServico + "&cepOrigem=" + pCEPOrigem + pCEPDestino;

    vURL += "&peso=" + pPeso.ToString().Replace(",", ".") + "&Formato=" + pFormato;

    vURL += "&Comprimento=" + pComprimento + "&Largura=" + pLargura + "&Altura=" + pAltura;

    System.Net.WebRequest Req = System.Net.WebRequest.Create(vURL);

    System.Net.WebResponse Resp = Req.GetResponse();

    System.IO.StreamReader sr = new System.IO.StreamReader(Resp.GetResponseStream(), System.Text.Encoding.UTF7);

    DataSet ds = new DataSet();

    //Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr);

    sr.Close();

    Resp.Close();

    if ((int)ds.Tables["erro"].Rows[0]["codigo"] != 0)

    {

    throw new Exception(ds.Tables["erro"].Rows[0]["descricao"].ToString());

    }

    else

    {

    return Convert.ToDouble(ds.Tables["Dados_Postais"].Rows[0]["preco_postal"].ToString().Replace(".", ","));

    }

    }

    public void Dispose()

    {

    System.GC.SuppressFinalize(this);

    }

    }

    Tuesday, July 18, 2006 6:03 PM

All replies

  • Montei uma classe em csharp, igualmente a quem interessar:

    clsCorreios.cs

    using System;

    using System.Data;

    public sealed class clsCorreios : System.IDisposable

    {

    public System.Data.DataSet BuscaCEP(string pCEP)

    {

    string vCorreiosURL = "http://www.bronzebusiness.com.br/webservices/wscep.asmx/cep?strcep=" + pCEP;

    System.Data.DataSet dsCorreios = new System.Data.DataSet();

    dsCorreios.ReadXml(GetURLStream(vCorreiosURL, "", "", "", ""));

    return dsCorreios;

    }

    private System.IO.Stream GetURLStream(string pURL, string pProxyAddress, string pProxyPort, string pProxyUserName, string pProxyPassword)

    {

    System.Net.WebRequest Request;

    System.Net.WebResponse Response;

    Request = System.Net.WebRequest.Create(pURL);

    System.Net.WebProxy wProxy = new System.Net.WebProxy("http://" + pProxyAddress + ":" + pProxyPort, true);

    wProxy.Credentials = new System.Net.NetworkCredential(pProxyUserName, pProxyPassword);

    if (pProxyAddress != "")

    Request.Proxy = wProxy;

     

    Response = Request.GetResponse();

    System.IO.Stream responseStream = Response.GetResponseStream();

    return responseStream;

    }

    public double CalculaSedex(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, bool pAvisoRecebimento)

    {

    return CalculaSedex(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pAvisoRecebimento, 0);

    }

    public double CalculaSedex(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, bool pAvisoRecebimento, double pValorDeclarado)

    {

    //Cria uma requisi‡Æo ao service dos correios, com os dados informados

    string vURL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?";

    vURL += "cepOrigem=" + pCEPOrigem + "&cepDestino=" + pCEPDestino;

    vURL += "&peso=" + pPeso.ToString().Replace(",", ".") + "&resposta=xml";

    System.Net.WebRequest Req = System.Net.WebRequest.Create(vURL);

    System.Net.WebResponse Resp = Req.GetResponse();

    System.IO.StreamReader sr = new System.IO.StreamReader(Resp.GetResponseStream(), System.Text.Encoding.UTF7);

    DataSet ds = new DataSet();

    //Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr);

    sr.Close();

    Resp.Close();

    if ((int)ds.Tables["erro"].Rows[0]["codigo"] != 0)

    {

    throw new Exception(ds.Tables["erro"].Rows[0]["descricao"].ToString());

    }

    else

    {

    return Convert.ToDouble(ds.Tables["Dados_Postais"].Rows[0]["preco_postal"].ToString().Replace(".", ","));

    }

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, 14, 14, 9, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, 14, 9, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, pLargura, 9, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura, double pComprimento)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, pLargura, pComprimento, 41027, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura, double pComprimento, double pTipoServico)

    {

    return CalculaEncomenda(pCEPOrigem, pCEPDestino, pPeso, pMaoPropria, pFormato, pAvisoRecebimento, pAltura, pLargura, pComprimento, pTipoServico, 0.0);

    }

    public double CalculaEncomenda(string pCEPOrigem, string pCEPDestino, double pPeso, bool pMaoPropria, double pFormato,

    bool pAvisoRecebimento, double pAltura, double pLargura, double pComprimento, double pTipoServico, double pValorDeclarado)

    {

    //Cria uma requisi‡Æo ao service dos correios, com os dados informados

    string vURL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?";

    vURL += "cepOrigem=" + pCEPOrigem + "&cepDestino=" + pCEPDestino;

    vURL += "&peso=" + pPeso.ToString().Replace(",", ".") + "&resposta=xml";

    vURL += "&servico=" + pTipoServico + "&cepOrigem=" + pCEPOrigem + pCEPDestino;

    vURL += "&peso=" + pPeso.ToString().Replace(",", ".") + "&Formato=" + pFormato;

    vURL += "&Comprimento=" + pComprimento + "&Largura=" + pLargura + "&Altura=" + pAltura;

    System.Net.WebRequest Req = System.Net.WebRequest.Create(vURL);

    System.Net.WebResponse Resp = Req.GetResponse();

    System.IO.StreamReader sr = new System.IO.StreamReader(Resp.GetResponseStream(), System.Text.Encoding.UTF7);

    DataSet ds = new DataSet();

    //Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr);

    sr.Close();

    Resp.Close();

    if ((int)ds.Tables["erro"].Rows[0]["codigo"] != 0)

    {

    throw new Exception(ds.Tables["erro"].Rows[0]["descricao"].ToString());

    }

    else

    {

    return Convert.ToDouble(ds.Tables["Dados_Postais"].Rows[0]["preco_postal"].ToString().Replace(".", ","));

    }

    }

    public void Dispose()

    {

    System.GC.SuppressFinalize(this);

    }

    }

    Tuesday, July 18, 2006 6:03 PM
  • Thiago, posso usar este WebService de CEP´s?

     

    http://www.bronzebusiness.com.br/webservices/wscep.asmx

    Tuesday, July 18, 2006 7:05 PM
  • Sim, pode, apesar dele não me pertencer, peguei esse link a mais e um ano atras e ainda funciona, convém, antes de consumi-lo, testar se funciona e nao criar nenhum projeto tendo o funcionamento dele como essencial, mas tá na mão.
    Tuesday, July 18, 2006 7:15 PM
  •  

     A quem interessar, segue a classe pronta em VBNET.

     

    Code Snippet

     

    Imports Microsoft.VisualBasic

    Public Class Correio

    Private Shared psServiceCorreios As String = "http://www.correios.com.br/encomendas/precos/calculo.cfm?"

    ''' <summary>Calcula valor do Sedex</summary>

    ''' <param name="cepOrigem">Cep de Origem</param>

    ''' <param name="cepDestino">Cep de Destino</param>

    ''' <param name="peso">Peso da Mercadoria</param>

    ''' <param name="MaoPropria">Agregar Serviço Mão Própria</param>

    ''' <param name="avisoRecebimento">Agregar Serviço Aviso de Recebimento</param>

    ''' <param name="valorDeclarado">Agregar Valor Declarado</param>

    ''' <returns>Retorna o valor calculado nos correios</returns>

    ''' <remarks></remarks>

    Public Shared Function Sedex(ByVal cepOrigem As String, _

    ByVal cepDestino As String, _

    ByVal peso As Decimal, _

    ByVal MaoPropria As Boolean, _

    ByVal avisoRecebimento As Boolean, _

    Optional ByVal valorDeclarado As Decimal = 0.0) As Decimal

     

    'Cria uma requisição ao service dos correios, com os dados informados

    Dim Req As Net.WebRequest = Net.WebRequest.Create(psServiceCorreios & _

    "cepOrigem=" & cepOrigem & _

    "&cepDestino=" & cepDestino & _

    "&peso=" & peso.ToString.Replace(",", ".") & _

    "&resposta=xml")

     

    Dim Resp As Net.WebResponse = Req.GetResponse()

    Dim sr As New IO.StreamReader(Resp.GetResponseStream(), Encoding.UTF7)

    Dim ds As New Data.DataSet()

    'Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr)

    sr.Close()

    Resp.Close()

    If ds.Tables("erro").Rows(0).Item("codigo") <> 0 Then

    Throw (New Exception(ds.Tables("erro").Rows(0).Item("descricao").ToString))

    Else

    Return ds.Tables("Dados_Postais").Rows(0).Item("preco_postal").ToString.Replace(".", ",")

    End If

    End Function

    ''' <summary>Calcula valor de Encomenda Normal</summary>

    ''' <param name="cepOrigem">Cep de Origem</param>

    ''' <param name="cepDestino">Cep de Destino</param>

    ''' <param name="peso">Peso da Mercadoria</param>

    ''' <param name="MaoPropria">Agregar Serviço Mão Própria</param>

    ''' <param name="avisoRecebimento">Agregar Serviço Aviso de Recebimento</param>

    ''' <param name="formato">Formato (verificar correio)</param>

    ''' <param name="altura">Altura do Pacote (cm)</param>

    ''' <param name="largura">Largura do Pacote (cm)</param>

    ''' <param name="comprimento">Comprimento do Pacote (cm)</param>

    ''' <param name="Tp_Servio">Tipo do Serviço (verificar correio)</param>

    ''' <param name="valorDeclarado">Agregar Valor Declarado</param>

    ''' <returns>Retorna o valor calculado nos correios</returns>

    ''' <remarks></remarks>

    Public Shared Function Encomenda(ByVal cepOrigem As String, _

    ByVal cepDestino As String, _

    ByVal peso As Decimal, _

    ByVal MaoPropria As Boolean, _

    ByVal avisoRecebimento As Boolean, _

    ByVal formato As Decimal, _

    Optional ByVal altura As Decimal = 14, _

    Optional ByVal largura As Decimal = 14, _

    Optional ByVal comprimento As Decimal = 9, _

    Optional ByVal Tp_Servio As Decimal = 41017, _

    Optional ByVal valorDeclarado As Decimal = 0.0) As Decimal

     

    'Valor padrão do formato caso não foi informado

    If formato = 0 Then formato = 1

    'Cria uma requisição ao service dos correios, com os dados informados

    Dim Req As Net.WebRequest = Net.WebRequest.Create(psServiceCorreios _

    & "&servico=" & Tp_Servio _

    & "&cepOrigem=" & cepOrigem _

    & "&cepDestino=" & cepDestino _

    & "&peso=" & peso.ToString.Replace(",", ".") _

    & "&Formato=" & formato _

    & "&Comprimento=" & comprimento _

    & "&Largura=" & largura _

    & "&Altura=" & altura _

    & "&resposta=xml")

    Dim Resp As Net.WebResponse = Req.GetResponse()

    Dim sr As New IO.StreamReader(Resp.GetResponseStream(), Encoding.UTF7)

    Dim ds As New Data.DataSet()

    'Coloca os dados recebidos em um DataSet

    ds.ReadXml(sr)

    sr.Close()

    Resp.Close()

    If ds.Tables("erro").Rows(0).Item("codigo") <> 0 Then

    Throw (New Exception(ds.Tables("erro").Rows(0).Item("descricao").ToString))

    Else

    Return ds.Tables("Dados_Postais").Rows(0).Item("preco_postal").ToString.Replace(".", ",")

    End If

    End Function

     

    End Class

     

     

    []´s

    Edelcio Molina

    Monday, June 18, 2007 1:19 PM
  • Esses outros parâmetros (largura, altura, etc) que vc usou pra encomenda comum são muito úteis.

    Parabéns!

     

    Walter

    Thursday, July 12, 2007 3:16 AM
  • como eu faço para suar a classe em vb.net ?

    Saturday, February 16, 2008 7:48 PM
  • Boa tarde,

    Aproveitando o tópico sobre cálculo de sedex. Eu estou utilizando o mesmo endereço para fazer o cálculo de frete em alguns e-commerces aqui da empresa. E observei que o link do cálculo está dando erro, não consigo calcular o frete. Alguém sabe se o correios atualizou algo ou tirou o serviço do ar?
    Segue os dados que aparecem para mim:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <calculo_precos>
    <versao_arquivo>1.0</versao_arquivo>
    <dados_postais>
    <servico>40010</servico>
    <servico_nome></servico_nome>
    <uf_origem></uf_origem>
    <local_origem></local_origem>
    <cep_origem>86010630</cep_origem>
    <uf_destino></uf_destino>
    <local_destino></local_destino>
    <cep_destino>86039520</cep_destino>
    <peso>1</peso>
    <mao_propria>0</mao_propria>
    <aviso_recebimento>0</aviso_recebimento>
    <valor_declarado>0</valor_declarado>
    <tarifa_valor_declarado>0</tarifa_valor_declarado>
    <preco_postal>0</preco_postal>
    </dados_postais>
    <erro>
    <codigo>-100</codigo>
    <descricao>Favor baixar a nova vers&atilde;o do HTML disponibilizado para download atrav&eacute;s do link "C&aacute;lculo Remoto de Pre&ccedil;os" do endere&ccedil;o www.corporativo.correios.com.br/encomendas/servicosonline/</descricao>
    </erro>
    </calculo_precos>
    Wednesday, April 22, 2009 7:45 PM
  • Estou com o mesmo problema.

    Me pareçe que tiraram do ar a forma que utilizamos. Pareçe que agora tem que ter contrato com eles para utilização
    IpHouse Hospedagem - www.iphouse.com.br
    Wednesday, April 22, 2009 8:00 PM
  • Cara. Estou com o mesmo problema!

    Mudei pro serviço:41106 que é o mesmo (PAC).

    Provavelmente os FDP mudaram!


    Att;
    Tuesday, July 28, 2009 2:45 PM
  • Olá pessoal,

    Vejam um post com o código completo de cálculo do valor do sedex em meu blog, através do endereço: http://www.danielgarcia.com.br/post/Calculando-o-Valor-do-SEDEX-com-ASPNET.aspx

    Espero ter ajudado. Caso consiga solucionar o problema em função desta resposta, peço por favor, clicar em “Marcar como Resposta” para que outras pessoas também possam usufruir deste conteúdo.

    Abraço.
    Daniel Garcia
    MCP, MCTS, MCDP
    Meu blog: www.danielgarcia.com.br

    Tuesday, July 28, 2009 4:08 PM