当我通过
发送我的json编码数组时<?php
$data=array("Arzt"=>array("Kundennummer"=>"",
"Praxisname"=>"Praxis XY",
"Vorname"=>"Test",
"Nachname"=>"Test",
# ...
));
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Authorization: Basic MTIzMTIzMS1CbGltdXM6clVja20yaVJxT0V2Y1ZTAb1IQUI='));
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = curl_exec($ch);
当 CURL 发送此消息时,它会像这样编码到达服务器(Web 服务日志):
{"{\"Arzt\":{\"Kundennummer\":\"\",\"Praxisname\":\"Praxis XY\",\"Vorname\":\"Test\",\"Nachname\": .........
但期望的是:
{"Arzt":{"Kundennummer":"","Praxisname":"Praxis XY","Vorname":"Test","Nachname": ..........
如何防止 PHP curl 中 JSON 字符串的双重编码?
我已经打电话了
curl_setopt( $ch, CURLOPT_HTTPHEADER, array(...));
多次思考,每个标头都被添加,但实际上只有最后一个标头被添加到调用中。
您必须将所有标头添加到一个数组中,并仅对 CURLOPT_HTTPHEADER 使用一次curl_setopt。