Pergunta

Eu tenho um programa bastante simples que leva em um URL e cospe primeiro lugar ele redireciona para. De qualquer forma, eu tenho testado-lo em alguns links e notou recebe 400 erros em algumas urls. Eu tentei testar essas urls, colando-o em meu navegador e que funcionou bem.

    static string getLoc(string curLoc, out string StatusDescription, int timeoutmillseconds)
    {
        HttpWebRequest x = (HttpWebRequest)WebRequest.Create(curLoc);            
        x.UserAgent = "Opera/9.52 (Windows NT 6.0; U; en)";
        x.Timeout = timeoutmillseconds;            
        x.AllowAutoRedirect = false;
        HttpWebResponse y = null;
        try
        {
            y = (HttpWebResponse)x.GetResponse(); //At this point it throws a 400 bad request exception.
Foi útil?

Solução

Eu acho que algo estranho está acontecendo com cookies. Acontece que devido à forma como eu estava testando o link, os cookies necessários para que ele funcione estavam no meu navegador, mas não a ligação. Acontece que alguns dos links que eu estava testando manualmente (quando os outros links falhou) foram gerando cookies.

É um pouco complicado que aconteceu, mas a resposta curta é que meu navegador tinha cookies, o programa não o fez, mantendo os biscoitos entre redirecionamentos não resolveu o problema.

O problema subjacente é causado pelo fato de que o link que eu estou testando requer ou um parâmetro extra ou um cookie ou ambos. Eu estava tentando evitar tanto em meus testes desde o parâmetro / biscoitos foram para rastrear e eu não queria quebrar rastreamento.

Em suma, eu sei qual é o problema, mas não é um problema solucionável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top