当前位置: 首页 > 面试题库 >

带有file_get_contents的HTTP请求,获取响应代码

郎雪风
2023-03-14
问题内容

我试图file_get_contents一起使用stream_context_create以发出POST请求。到目前为止,我的代码:

    $options = array('http' => array(
        'method'  => 'POST',
        'content' => $data,
        'header'  => 
            "Content-Type: text/plain\r\n" .
            "Content-Length: " . strlen($data) . "\r\n"
    ));
    $context  = stream_context_create($options);
    $response = file_get_contents($url, false, $context);

它工作正常,但是,当发生HTTP错误时,会发出警告:

file_get_contents(...): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

返回false。有没有办法:

  • 禁止显示警告(如果发生故障,我打算抛出自己的异常)
  • 从流中获取错误信息(至少是响应代码)

问题答案:

http://php.net/manual/en/reserved.variables.httpresponseheader.php

file_get_contents("http://example.com", false, stream_context_create(['http' => ['ignore_errors' => true]]));
var_dump($http_response_header);


 类似资料:
  • 目前我有一个问题与新的Spring5WebClient,我需要一些帮助来解决它。问题是: 我请求一些url返回内容类型为text/html;charset=utf-8的json响应。 顺便说一句,我在accept头中指向哪种类型并不重要,总是返回text/html。那么如何最终转换我的响应呢?

  • 我有一个带有Rest控制器的Spring启动应用程序,它将接受来自外部方A的超文本传输协议请求。 我想将此请求转发给另一方B。需要捕获来自B响应的数据,然后转发回A。 我最初的想法是通过RestTemplate发出另一个请求,等待响应,捕获必要的数据,然后转发回A。 我只是想知道是否有更巧妙的方法? 提亚

  • 我正在使用JMeter为2000个用户测试托管在azure服务器上的应用程序。但我得到了以下错误响应代码:非HTTP响应代码:org.apache.HTTP.conn.HttpHostConnectException响应消息:非HTTP回应消息:连接到http://www.app.com拒绝 响应代码:非HTTP响应代码:Java . net . sockettimeoutexception响应消

  • 我在: > http://developer.yahoo.com/blogs/ydn/important-api-updates-changes-8060.html http://developer.yahoo.com/boss/search/ http://tech.groups.yahoo.com/group/ysearchboss/msearch?query=http要求 http://de

  • 网络爬虫工作过程可以理解为模拟浏览器操作的过程,浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示服务器返回的网络资源。 一、浏览器处理网页的过程 我们先来看一下浏览网页的基本过程,比如我们在浏览器地址栏输入:http://www.baidu.com 回车后会浏览器会显示百度的首页。 这段网络通信过程中到底发生了什么?简单来说这段过程发生了以下四个步骤: 当我们在浏览器输入URL http:/

  • 上一个小节中,我们简单的介绍了 HTTP 协议,但是,并没有针对 HTTP 的请求和响应进行更详尽的描述。但是,分析请求和响应信息是我们进行爬虫工作中的重要步骤,因此,有必要详细的介绍这两个步骤。 我们还是复用之前的访问慕课网的例子进行 HTTP 协议的解析。关于怎么获取请求头和响应头的信息的内容,我们会在后面讲解第一个爬虫的时候进行讲解。 使用 get 方法请求慕课网的请求信息如下: GET /