我在www.bluemix.net上有一个使用PHP的项目。我尝试发送HTTP请求,如下面的代码所示,但我从未到达{echo“b”;}命令。我认为默认情况下,在Bluemix上使用PHP时,HTTP请求未启用。
<?php
error_reporting(E_ALL);
echo "a";
$request = new HttpRequest(); // I never pass this line
echo "b";
$request->setUrl('https://stream.watsonplatform.net/speech-to-text/api/v1/recognize');
$request->setMethod(HTTP_METH_POST);
?>
有没有人以这种方式使用Bluemix并且在使用HTTP请求时遇到了同样的问题?
提示:
项目结构如下:
答案 0 :(得分:1)
HttpRequest module是可选的PEAR包。默认情况下,这不会包含在您的PHP环境中。看看这个thread,有很多方法可以安装可选模块。
最简单的方法是使用Composer。
您可以使用Composer来安装它们。 Pear模块常常是 也列在Composer存储库中,因此您可以安装它们 而是直接使用Composer。如果没有,您也可以使用Composer 安装Pear模块,将它们从Pear仓库中拉出来。
PHP buildpack documentation详细介绍了如何使用您的应用程序配置Composer。
答案 1 :(得分:1)
[已解决]现在问题已解决,我只需将应用程序下载到我的计算机上,然后在本地安装composer,然后将整个内容推送到bluemix。
我认为这不是最佳方式,因为我更喜欢直接在云上编码。无论如何,我将总结可用于使用IBM bluemix运行HttpRequest的步骤:
转到计算机本地,在应用程序文件夹中,修改文件 composer.json 以包含任何http包。对我来说,我使用了php-curl,所以文件看起来像
{
"require": {
"php-curl-class/php-curl-class":"*"
}
"minimum-stability": "dev"
}
使用composer local
安装软件包 php composer.phar install
现在,一切准备就绪,我们应该将整个应用程序推回去 bluemix:
使用用户名和密码
登录蓝色混音 bluemix login
连接到IBM blue mix
bluemix api https://api.ng.bluemix.net
推送与您的应用程序名称匹配的应用程序
cf push <app_name>