Php 小发票api curl请求
我正在研究SmallInvoice api。这里是链接 smallinvoice.ch/api/general/overview 我正在尝试在小发票帐户中添加客户。这是密码 $url='' 这是旋度响应 {“error”:true,“errorcode”:0,“errormessage”:“提供的数据流无效或为空”} 当我打印$json\u add\u时,客户端变量数据如下所示 {“类型”:2,“性别”:1,“姓名”:“阿德南·艾哈迈德”,“语言”:“恩”,“数字”:5,“地址”:[{“街道”:“地址”,“街道号”:“,”代码:60000,“城市”:“木尔坦”,“国家”:“PK”}] 我复制了上面的json数据并粘贴了小发票测试api。。(这是我粘贴的链接) 此时,客户端已成功添加 我不知道客户机为什么不通过CURL请求添加 如果有人知道,请告诉我我错在哪里。Php 小发票api curl请求,php,curl,Php,Curl,我正在研究SmallInvoice api。这里是链接 smallinvoice.ch/api/general/overview 我正在尝试在小发票帐户中添加客户。这是密码 $url='' 这是旋度响应 {“error”:true,“errorcode”:0,“errormessage”:“提供的数据流无效或为空”} 当我打印$json\u add\u时,客户端变量数据如下所示 {“类型”:2,“性别”:1,“姓名”:“阿德南·艾哈迈德”,“语言”:“恩”,“数字”:5,“地址”:[{“街道”:
我会感谢你的 这种情况很可能发生,因为您需要设置POST请求来发送json而不是URL编码的数据。在
curl\u exec
之前将此选项添加到curl请求中
curl_setopt($handle, CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json',
'Content-Length: ' . strlen($json_add_client)
)
);
编辑:
在进一步阅读他们的文档后,您似乎必须按照以下结构格式化POST数据:
data={"amount":1,"value":1}
在本例中,您将执行类似的操作:
$address[] = array(
"street" => "Address",
"streetno" => "",
"code" => 60000,
"city" =>"Multan",
"country" => "PK"
);
$this->data['add_client'] = array(
"type" => 2,
"gender" => 1,
"name" => "Adnan Ahmad",
"language" => "en",
"number" => 5,
"addresses" => $address
);
$json_add_client = json_encode($this->data['add_client']);
// curl request start
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_POST, 1);
curl_setopt($handle,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POSTFIELDS,
array("data"=>$json_add_client)
);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION ,1);
curl_exec($handle);
先生,非常感谢您的回复。我添加了上面您发送的代码,但curl响应仍然是一样的。进一步查看他们的文档,您可能必须确保json字符串被分配给一个名为
data
的POST变量,比如data={“amount”:1,“value”:1}
。先生,非常感谢。。它正在工作。。你太棒了。。再次感谢。。愿上帝保佑你
$address[] = array(
"street" => "Address",
"streetno" => "",
"code" => 60000,
"city" =>"Multan",
"country" => "PK"
);
$this->data['add_client'] = array(
"type" => 2,
"gender" => 1,
"name" => "Adnan Ahmad",
"language" => "en",
"number" => 5,
"addresses" => $address
);
$json_add_client = json_encode($this->data['add_client']);
// curl request start
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_POST, 1);
curl_setopt($handle,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POSTFIELDS,
array("data"=>$json_add_client)
);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION ,1);
curl_exec($handle);