curl-在决定如何处理有效负载之前,请检查内容类型



我正在使用一个具有DownloadFile方法的API。成功请求该方法后,响应的内容类型将为application/octet stream,并包含一个文件。如果对方法的请求不成功,则响应的内容类型将为text/xml,并包含相应的错误。

我要求的文件是包含多张照片的档案,可能会非常大。因此,我使用CURLOPT_FILE将有效负载直接写入文件,而不是将其存储在内存中。

我的问题是,有没有办法检查响应的内容类型,然后决定如何处理有效负载?我只想在内容类型为应用程序/八位字节流的情况下将有效负载写入文件。否则,我只想从XML响应中获取错误并将其返回给用户。

谢谢。

您可以在下载前发送HEAD http请求,并解析内容类型字段的响应。为此,您必须将CURLOPT_NOBODYCURLOPT_HEADER选项与CURLOPT_RETURNTRANSFER一起使用,以便从curl_exec()中获得完整的http HEAD部分作为字符串。

最新更新