簡體   English   中英

通過curl將服務器的發帖請求發送到另一個

[英]Send post request from server to another by curl

我有2個PHP文件,每個文件位於單獨的服務器中。

例如:

  1. mainServer / default / index.php
  2. externalServer / request.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_queryarray 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM