[英]Send post request from server to another by curl
我有2個PHP文件,每個文件位於單獨的服務器中。
例如:
第一個文件代碼(index.php):
echo $_POST['file_name'];
第二個文件代碼(request.php):
$data = array(
'file_name' => "file.zip",
'file_size' => 5000
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mainServer/default/index.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
我想要的是將$data
數組從externalServer/request.php
發送到mainServer/default/index.php
,但是有一個錯誤Notice: Undefined index: file_name in default\\index.php on line 13
。
如何獲取$data
數組以例如打印項目?
我在您的代碼中發現了錯誤。 直接發送關聯數組(您所做的)不是正確的方法。 您需要將數組作為字符串發送。
例
This->
$data = array(
'file_name' => "file.zip",
'file_size' => 5000
);
應該是這個->
$data = "file_name=file.zip&file_zipe=500"
現在,當您發送數據后,就可以通過$_POST
來獲取數據了。 您可以讓php使用http_build_query
將array to string conversion
。
$data = array(
'file_name' => "file.zip",
'file_size' => 5000
);
$string = http_build_query($data);
//output = file_name=file.zip&file_size=5000
在此處閱讀有關http_build_query
更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.