METODO POST - PROBLEMAS
25/08/2009
0
Estou passando um programa que havia feito anteriormente em Java, para C#. E sua principal função era a seguinte:
Em determinado ponto da execução, ele entrava em um site(https), criava as credenciais necessárias, realizava um post para a página contendo um código de transmissão e a mesma retornava um arquivo .zip, de acordo com o código fornecido... então o programa pegava esse retorno e salvava em um diretório.
Ok, fui pesquisar o método post em C, encontrei várias referencias pela internet e utilizei...
O código está fazendo as credenciais como esperado, e realizando o post, porém, a página não encontra o conteúdo do Header que envio com a informação do código de transmissão, e me retorna uma mensagem padrão do sistema deles, em html: ´Código de transmissão não encontrado´.
Estou a alguns dias vasculhando a internet, porém tudo que encontro é muito semelhante ao o que eu já realizei:
Vocês conseguem ver algo que não percebi ainda?... Desde já, muito obrigado.
Em determinado ponto da execução, ele entrava em um site(https), criava as credenciais necessárias, realizava um post para a página contendo um código de transmissão e a mesma retornava um arquivo .zip, de acordo com o código fornecido... então o programa pegava esse retorno e salvava em um diretório.
Ok, fui pesquisar o método post em C, encontrei várias referencias pela internet e utilizei...
O código está fazendo as credenciais como esperado, e realizando o post, porém, a página não encontra o conteúdo do Header que envio com a informação do código de transmissão, e me retorna uma mensagem padrão do sistema deles, em html: ´Código de transmissão não encontrado´.
Estou a alguns dias vasculhando a internet, porém tudo que encontro é muito semelhante ao o que eu já realizei:
clsInfBanco objBanco = new clsInfBanco(); DataTable dtInformacoes = objBanco.DadosAcessoWebTran(); int iPorcentagem = 0; foreach (DataRow linha in dtInformacoes.Rows) { try { HttpWebRequest requisicao = (HttpWebRequest) WebRequest.Create("https://siteexemplo.com/transmicao"); NetworkCredential login = new NetworkCredential(linha["DESCR_USUARIO"].ToString(), linha["DESCR_SENHA"].ToString()); requisicao.Credentials = login; string sRequisicao = linha["COD_DIARIO"].ToString(); requisicao.Headers.Set("CODTRAN",sRequisicao); requisicao.ProtocolVersion = HttpVersion.Version11; requisicao.Method = "POST"; HttpWebResponse resposta = (HttpWebResponse)requisicao.GetResponse(); resposta.Headers.Set("CODTRAN", sRequisicao); Stream arquivoOrigem = resposta.GetResponseStream(); FileStream arquivoFisico = new FileStream(string.Format(@"C:\Baixando\.zip", linha["DESCR_EMPRESA"]), FileMode.Create, FileAccess.Write); this.EscreveArquivoFisico(arquivoOrigem, arquivoFisico, lbl); iPorcentagem = pb.Value; pb.Value = (iPorcentagem += Convert.ToInt32(100/dtInformacoes.Rows.Count )); lbl.Text = linha["COD_DIARIO"].ToString() + " sendo Baixado"; } catch (Exception ex) { lbl.Text = (ex.Message); } } } private void EscreveArquivoFisico(Stream arquivoOrigem, Stream arquivoFisico, System.Windows.Forms.Label lbl) { try { int tamanho = 4096; Byte[] buffer = new Byte[tamanho]; int bytesLeitura = arquivoOrigem.Read(buffer, 0, tamanho); while (bytesLeitura > 0) { arquivoFisico.Write(buffer, 0, bytesLeitura); bytesLeitura = arquivoOrigem.Read(buffer, 0, tamanho); } arquivoOrigem.Close(); arquivoFisico.Close(); } catch (Exception ex) { arquivoOrigem.Close(); arquivoFisico.Close(); lbl.Text = ex.Message; } }
Vocês conseguem ver algo que não percebi ainda?... Desde já, muito obrigado.
Bandheid
Curtir tópico
+ 0
Responder
Posts
25/08/2009
Bandheid
*Ignorem a linha do código:
resposta.Headers.Set(´CODTRAN´, sRequisicao);
Estava fazendo um teste e não a apaguei*
resposta.Headers.Set(´CODTRAN´, sRequisicao);
Estava fazendo um teste e não a apaguei*
Responder
Clique aqui para fazer login e interagir na Comunidade :)