从Web服务获取空白数组

问题描述:

I am having a very strange problem in consuming a web services that I created on another server.

This is the URL of web services that I created

http://52.53.227.143/API_test.php?post_name=BSN%20Syntha-6%20Isolate

I can't able to receive data in array or any other format on my site. I used both file_get_content and curl to receive the json format, but its only giving me blank array.

Here is my code:

$post_name = 'BSN Syntha-6 Isolate';
$base = "http://52.53.227.143/API_test.php?post_name=".$post_name;
$str = file_get_contents($base);
echo '<pre>';
print_r(json_decode($str));

Its giving me following result:

stdClass Object
(
[info] => Array
    (
    )

)

I also use Curl, here's the code:

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $base);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'); 
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$str = curl_exec($curl);
curl_close($curl);
echo '<pre>';
print_r(json_decode($str));

Please help me.

Use urlencode()

This is working now :

<?php
    $post_name = 'BSN Syntha-6 Isolate';
    $base = "http://52.53.227.143/API_test.php?post_name=" . urlencode($post_name);
    $str = file_get_contents($base);
    echo '<pre>';
    print_r(json_decode($str));
?>