自訂Java URLConnections 的使用者代理程式
使用Java 的URLConnection 建立與網頁的連線時,您可能想要設定自訂使用者人。這通常用於模仿特定 Web 瀏覽器的行為或識別您的應用程式。但是,嘗試設定非預設用戶代理通常會導致附加預設值。
解決方案:
在早期版本的Java 中,設定自訂使用者代理程式透過setRequestProperty("User-Agent", "custom_agent") 在末尾附加「 Java/xx」。此問題已在 Java 1.6.30 及更高版本中解決。
範例:
import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); System.out.println(connection.getRequestProperty("User-Agent")); } }
在Java 1.6.30 或更高版本中,此程式碼將輸出「Mozilla /5.0" 沒有附加"Java/xx" .
Netcat驗證:
要驗證是否正在使用自訂使用者代理,您可以使用netcat 監聽連接埠:
$ nc -l -p 8080
執行上述程式碼時,您應該在收到的HTTP 標頭中看到自訂用戶代理netcat。
替代解決方案:
如果您仍然遇到在舊Java 版本中附加「Java/xx」的問題,您可以嘗試使用第三方HTTP允許您完全控制User-Agent 標頭的庫。
以上是如何為 Java URLConnections 設定自訂用戶代理程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!