作者ldwang (地瓜)
看板PHP
标题[请益] 不知道是哪边问题(curl?php版本?json?)
时间Thu Apr 18 12:32:54 2013
想要用厂商的API,他的范例CreatCustomers.php
我自己的appserv2.5.10跑出来,"Data"都null (如下)
result:{"Data":null,"ErrorCode":2,"Message":"FAIL"}
https://www.videgree.com/Store/Customer.mvc/Index 点它登入可看到您新增的!
我试着echo()出curl_init()的结果,会是Resource id #2,
echo()出base64_encode()的结果的话,会是
eyAgICAgICAgIkN1c3RvbWVyTm8iIDogIjEiLCAgICAgICAgICAgICAgICAi
Q3VycmVudE5hbWUiIDogIualiuadseWfjiIgICAgfQ==
我猜想是不是因为appserv的php5.2.6的关系?
好像是curl_setopt()还是curl_exec()这部分跑完之後,
应该要出来有东西的$resulta没有东西。
可否给我一个方向去try?感谢!
http://www.videgree.com/store/ApiExample.mvc/Index/CreateCustomer
---------------------------------------------------------------------------------
class Util
{
public static function Post($URL, $data) { //Initiate cURL request and send
back the result
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:
application/json'));
curl_setopt($ch, CURLOPT_URL, $URL);
// curl_setopt($ch, CURLOPT_USERAGENT, $this->_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// curl_setopt($ch, CURLOPT_COOKIEFILE, $this->_cookie_file_path);
// curl_setopt($ch, CURLOPT_COOKIEJAR, $this->_cookie_file_path);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_POST, 1);
$resulta = curl_exec($ch);
if (curl_errno($ch)) {
echo 'ch:' . $ch;
print curl_error($ch);
} else {
curl_close($ch);
}
return $resulta;
}
}
-------------------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.90.54
1F:→ dlikeayu:$url 你直接打在browser有print出东西吗? 04/18 15:30
2F:→ dlikeayu:二来,按登入後 会在你action列出现的参数 你有用 04/18 15:32
3F:→ dlikeayu:urlencode decode去丢吗? 04/18 15:33
4F:→ dlikeayu:继第一点,$url的string开头有http(s):// 的协定吗? 04/18 15:34
5F:→ dlikeayu:刚刚把那base64拿去decode发现变成 04/18 15:37
6F:→ dlikeayu:{ "CustomerNo" : "1", "CurrentName":"杨东城"} 04/18 15:38
7F:→ dlikeayu:所以你试试看 return json_decode($resulta) 04/18 15:40
8F:→ dlikeayu:应该会得到一组array 04/18 15:40
9F:→ dlikeayu:大概知道你的问题点了 json_decode问题是正解 04/18 15:45
10F:→ dlikeayu:或json_decode($var, true); 04/18 15:46
已处理完毕
现在厂商那边的范例稍微修改过了,已经可以正常运作了
原因只是name写错了(也不是写错,是整个程式里都重新命名但漏了这里)
文内我贴上来发问的程式码,本身是可以run正确的。
如果您是也是用这产品的,现在的范例程式下载下来使用没问题。(对server端的
名称改正了)
※ 编辑: ldwang 来自: 220.135.90.54 (04/29 11:34)
11F:→ ldwang:dlikeayu非常感谢您。 04/29 11:36