Personalizando o agente do usuário para URLConnections em Java
Ao usar URLConnection em Java para recuperar conteúdo da web, muitas vezes é necessário definir um agente de usuário personalizado para rastreamento preciso de sites e simulação de usuário. No entanto, o tempo de execução Java padrão anexa seu próprio identificador à string do agente do usuário, o que pode não ser desejável em determinados cenários.
A consulta
Um desenvolvedor Java procurou ajuda na configuração de um agente de usuário sem o sufixo "Java/1.5.0_19" anexado pelo tempo de execução. O usuário forneceu um trecho de código ilustrando como ele tentou definir o agente do usuário usando setRequestProperty().
A solução
Felizmente, em Java 1.6.30 e posterior, configurar o agente do usuário por meio de setRequestProperty("User-Agent", "") funciona perfeitamente, sem que nenhuma informação adicional de tempo de execução Java seja adicionada. Para demonstrar isso, o desenvolvedor usou o netcat para escutar solicitações HTTP recebidas e observou que o agente de usuário personalizado foi enviado com sucesso sem o sufixo Java.
Importação completa
import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws IOException { URL url = new URL("http://localhost:8080/foobar"); URLConnection hc = url.openConnection(); hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); System.out.println(hc.getContentType()); } }
Ao utilizar essa abordagem, os desenvolvedores podem definir efetivamente agentes de usuário para suas URLConnections em Java sem quaisquer adições indesejadas específicas de Java, garantindo o comportamento desejado para seu web scraping ou outras tarefas de comunicação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3