php - HTTP/1.1 505 不支持 HTTP 版本

标签 php http file-get-contents

我正在运行一个 PHP 脚本来获取网页。它在许多站点上运行良好,但在一个站点上运行失败,返回错误消息“不支持 HTTP/1.1 505 HTTP 版本”。

这是我的(部分)脚本:

for($i = 0; $i < 1; $i++) {
    $page = file_get_contents("http://www.lovelybooks.de/stoebern/empfehlung/romantic fantasy/?seite=$i");
    // do something with $page
}

许多答案建议明确设置 HTTP 版本。我试过设置 0.9、1.0 和 1.1,但没有任何改变。实际上, header 似乎表明我的浏览器请求的 HTTP 版本与服务器匹配的预期版本:

回复标题:

HTTP/1.1 200 OK
Date: Mon, 15 Dec 2014 09:01:15 GMT
Server: Apache
X-Powered-By: PHP/5.4.35
Keep-Alive: timeout=2, max=200
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

请求 header :

GET /path/script.php HTTP/1.1
Host: www.mydoman.de
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Authorization: Basic MjQwMjE5Njc6MDcwNjIwMDc=
Connection: keep-alive
Cache-Control: max-age=0

还有什么问题?

最佳答案

用百分比编码替换 URL 中的空格:

    $page = file_get_contents("http://www.lovelybooks.de/stoebern/empfehlung/romantic%20fantasy/?seite=$i");

关于php - HTTP/1.1 505 不支持 HTTP 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480720/

相关文章:

php - 进行具有不同参数的多个curl请求的最佳实践是什么?

php - Tag-it jQuery 插件表单输入数组的问题

java - 在 Java Servlet 的上下文中,URL 重写和转发之间有什么区别?

performance - 浏览器可能无法理解 gzip 内容的原因

php - 使用 css 路径从网站获取内容

php - 按添加的 WHERE 条件的顺序对 SQL 输出进行排序

java - HTTP 请求是从 JSP 与 servlet 通信的唯一方法吗?

ssl - simplehtmldom - SSL 操作失败,代码为 1。OpenSSL 错误消息

php - file_get_contents 的超时在 PHP 中不起作用

javascript - 将表单值保存到另一个 PHP 页面