如何访问此JSON元素? (PHP)

时间:2015-04-25 17:04:42

标签: php json

我做错了什么?这是我的代码:

$json_url = "https://futservices.com/FUTFillOrder/FUTFillWebService.asmx/New";
$apikey = "..........";

$data_json = '{"user":"...........",
"customer" {"username":".....","password":".....","phishing":"....."},"seller":{"username":".....","password":"......","phishing":"....."},"amount":10000,"platform":"ps"}';


    $ch = curl_init($json_url);

    curl_setopt_array($ch, array(
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data_json,
    CURLOPT_HEADER => true,
    CURLOPT_HTTPHEADER => array(
              'Connection: keep-alive',
              'Accept: application/json',
              'Content-Type: application/json; charset=utf-8',
              'Host: futservices.com',
              'Content-Length: '.strlen($data_json).'',
              'Accept-Encoding: gzip'
              ))
   );


    $response  = curl_exec($ch);
    curl_close($ch);

    echo $response;

    $order = json_decode($response, true);


    echo "Your Token Is: ".$order['d'];`

请求很好,但是,我想抓住" d"在来自API的JSON响应中发送的JSON元素。

这是回复:

HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Length: 44 Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Sat, 25 Apr 2015 16:58:09 GMT {"d":"d922bad4-60d8-4fe4-9cba-0231328744a0"}1Your Token Is:

正如你所看到的那样" d"在"你的令牌是:"之后没有回应。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要设置CURLOPT_RETURN_TRANSFER标志以将CURL的结果存储为变量。发生的事情是,响应只是直接发送到您的浏览器。添加选项,如下所示。

 curl_setopt_array($ch, array(
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data_json,
    CURLOPT_HEADER => true,
    CURLOPT_RETURN_TRANSFER => true,
    CURLOPT_HTTPHEADER => array(
              'Connection: keep-alive',
              'Accept: application/json',
              'Content-Type: application/json; charset=utf-8',
              'Host: futservices.com',
              'Content-Length: '.strlen($data_json).'',
              'Accept-Encoding: gzip'
              ))
   );

我希望有所帮助!

相关问题