使用PHPcurl发送json时防止双重编码

问题描述 投票:0回答:1

当我通过

发送我的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 字符串的双重编码?

php json curl escaping
1个回答
0
投票

我已经打电话了

curl_setopt( $ch, CURLOPT_HTTPHEADER, array(...));

多次思考,每个标头都被添加,但实际上只有最后一个标头被添加到调用中。

您必须将所有标头添加到一个数组中,并仅对 CURLOPT_HTTPHEADER 使用一次curl_setopt。

© www.soinside.com 2019 - 2024. All rights reserved.