PHP中Curl和HttpRequest之间的区别

26

我需要向服务器进行原始POST(PUT $var)请求,并将该页面的结果作为字符串接受。还需要添加自定义HTTP头信息(例如x-example-info:2342342)。

我有两种方法可以做到:

这两种方法有什么区别?哪个更轻便?更快?在我看来,两者几乎相同...

3个回答

26

Curl已经集成在PHP中,而HTTPRequest是一个单独的PECL扩展。

因此,CURL更可能安装在您的目标平台上,这基本上决定了大多数项目的使用选择。只有当您计划仅在您可以自己安装PECL扩展的服务器上安装软件时,才应该考虑使用HTTPRequest;如果您的客户将自己安装软件,那么安装PECL扩展通常不可行。

这个页面似乎表明HTTPRequest在内部使用CURL。听起来它可能提供了一个稍微更优雅的接口去调用curl_multi_*(),但是其实质上还是依赖于CURL。


10

HTTPRequest(以及PECL扩展)是建立在libcurl基础上的。

http://us.php.net/manual/en/http.requirements.php

实际上,HTTPRequest只是一种更易于理解和使用的方式,用于执行相同的任务。

正如Frank Farmer所提到的那样,你更有可能在目标平台上已经安装了curl,并且可能难以让托管提供商安装PECL库。


5
HTTPRequest是curl的“包装器”。手册中的这两个引用应该能给你一个线索:
- 如果使用CURL支持构建,则提供强大的请求功能。PHP5及更高版本可用并行请求。 - 必须使用libcurl支持构建扩展程序以启用请求功能(--with-http-curl-requests)。需要等于或大于v7.12.3的库版本。
虽然我自己从未使用过这个扩展,但是看起来如果您想让您的代码看起来更面向对象,您可以选择这个扩展,但它可能会慢一些,尽管与您要进行的外部调用相比无关紧要,因此我不会考虑性能来做出选择。我会优先考虑curl已经内置,而其他扩展需要自己添加,这很不方便,并且降低了可移植性,因为您可能想在共享环境中托管应用程序,而您无法控制。
对于您在问题中解释的需求,我肯定会选择curl。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接