使用cURL通過POST發送數據時,如果該數據字符串是URL編碼的,或者其部分是URL編碼的,cURL在發送數據時會自動解碼數據。爲什麼cURL在POSTing時解碼我的URL編碼值?
在PHP中或直接在命令行中使用cURL時會發生這種情況。
我用cURL的兩個不同版本進行了測試:7.19和7.49。兩者都表現出相同的行爲
我發送了來自兩個不同服務器的cURL請求,認爲服務器的配置方式對此有所影響,但結果相同。
下面是一個簡單的PHP捲曲的要求,我用我的測試:
$ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13';
$data = "https%3A%2F%2Fexample.com%3A8081%2Ftemoignez%3FQid%3D%26"
$ch = curl_init("https://example.com/test/webhook.php");
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "payload=".$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
的數據將被送到解碼,即使初始字符串URL編碼。
我通過使用PHP將POST數據轉儲到磁盤上的文件中來檢索數據。
這是正常的嗎?任何想法可能會導致這種情況?
你爲什麼不想解碼? – bassxzero
這與我的問題無關,具體的項目是URL編碼 –
祝你好運,然後 – bassxzero