CodeIgniter控制器只响应浏览器

时间:2018-02-13 05:58:52

标签: php codeigniter

我在gcloud中设置了一个codeigniter项目,我写了一个简单的帖子并得到这样的控制器:

public function test2() {
    echo "hello"
}
public function test() {
    $input_data = json_decode(trim(file_get_contents('php://input')), true);
    print_r($input_data);   
}

当你在这里测试时

当我在浏览器中调用它时,似乎得到/ test的响应,但是当通过邮递员或CURL调用它时它不起作用!

所以我使用此代码对本地主机和服务器进行CURL测试

<?php 
post();
echo "<hr>";
get();
function post() {
    $ch = curl_init();
    $url1 = 'https://rbm2018-123.appspot.com/api/member/test';
    $url2 = 'localhost/nrb-website/api/member/test';
    $payload = `{
                    "qwerty": 1234,
                    "comeon": "sdgsdkjsdfsdgf"
                }`;
    curl_setopt_array($ch, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $url2,
        CURLOPT_HTTPHEADER => array('Content-Type:application/json'),
        CURLOPT_USERAGENT => 'Codular Sample cURL Request',
        CURLOPT_POSTFIELDS => $payload
    ));

    $result = curl_exec($ch);
    curl_close($ch);
    print_r($result);
}

function get() {
    $ch = curl_init();
    $url1 = 'https://rbm2018-123.appspot.com/api/member/test2';
    $url2 = 'localhost/nrb-website/api/member/test2';
    curl_setopt_array($ch, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $url2,
        CURLOPT_USERAGENT => 'Codular Sample cURL Request'
    ));

    $result = curl_exec($ch);
    curl_close($ch);
    print_r($result);   
}
?>

url1和url2的CURL帖子没有任何结果 对于url2的CURL获取结果但是url2没有响应。

3 个答案:

答案 0 :(得分:0)

看起来CodeIgniter会阻止&#34; file_get_contents(&#39; php://输入&#39;)&#34; -request,请查看此https://www.codeigniter.com/user_guide/libraries/input.html#using-the-php-input-stream

同时检查他们可以帮助的PHP错误,我在开发服务器上使用了大部分时间display_errors = true。

我希望这有助于你

答案 1 :(得分:0)

我发现了,我需要添加

google_app_engine.enable_curl_lite = "1"

到我的应用程序根目录中的php.ini以使其正常工作

答案 2 :(得分:0)

注意:您错过了在url2中添加http://检查