wget说406不可接受

OZ1*_*SEJ 2 encoding http wget

我的Web服务器上有一个简单的文件,当我在浏览器中请求该文件时,它的加载没有问题:

http://example.server/report.php
Run Code Online (Sandbox Code Playgroud)

但是,当我从Raspberry Pi用wget请求文件时,得到以下信息:

$ wget -d --spider http://example.server/report.php
Setting --spider (spider) to 1
DEBUG output created by Wget 1.18 on linux-gnueabihf.

Reading HSTS entries from /home/pi/.wget-hsts
URI encoding = 'ANSI_X3.4-1968'
converted 'http://example.server/report.php' (ANSI_X3.4-1968) -> 'http://example.server/report.php' (UTF-8)
Converted file name 'report.php' (UTF-8) -> 'report.php' (ANSI_X3.4-1968)
Spider mode enabled. Check if remote file exists.
--2018-06-03 07:29:29--  http://example.server/report.php
Resolving example.server (example.server)... 49.132.206.71
Caching example.server => 49.132.206.71
Connecting to example.server (example.server)|49.132.206.71|:80... connected.
Created socket 3.
Releasing 0x00832548 (new refcount 1).

---request begin---
HEAD /report.php HTTP/1.1
User-Agent: Wget/1.18 (linux-gnueabihf)
Accept: */*
Accept-Encoding: identity
Host: example.server
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 406 Not Acceptable
Date: Fri, 15 Jun 2018 08:25:17 GMT
Server: Apache
Keep-Alive: timeout=3, max=200
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

---response end---
406 Not Acceptable
Registered socket 3 for persistent reuse.
URI content encoding = 'iso-8859-1'
Remote file does not exist -- broken link!!!
Run Code Online (Sandbox Code Playgroud)

我在某处读到它可能是编码问题,所以我尝试了

$ wget -d --spider --header="Accept-encoding: *" http://example.server/report.php
Run Code Online (Sandbox Code Playgroud)

但这给了我完全相同的错误。

dar*_*nir 5

这是因为您要连接的服务器仅服务于某些User-Agent。

更改用户代理,它可以正常工作:

wget -d --user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" http://example.server/report.php