Fórum METODO POST - PROBLEMAS #21389
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)