我做错了什么?这是我的代码:
$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"在"你的令牌是:"之后没有回应。 我该如何解决这个问题?
答案 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'
))
);
我希望有所帮助!