"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como definir um agente de usuário personalizado para URLConnections em Java sem o Java Runtime Identifier?

Como definir um agente de usuário personalizado para URLConnections em Java sem o Java Runtime Identifier?

Publicado em 2024-12-22
Navegar:699

How to Set a Custom User Agent for URLConnections in Java without the Java Runtime Identifier?

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.

Tutorial mais recente Mais>

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