PHP从HTTPS请求数据

时间:2016-05-10 02:26:29

标签: php json httprequest

首先,我是编程新手。我想从另一台服务器请求特定数据(来自MSSQL的数据)并将其转移(插入)到我的MySQL数据库中,获得此目的的正确方法是什么?

目的:

  

MSSQL方面的成员想转移一定数量的   指向MySQL,成员可以输入他们有多少积分,一次   这些点是成功转移到MySQL,一个通知脚本会   发送到MSSQL端进行更新。

在MSSQL端应该生成什么,以便MySQL可以获取这些数据以进行进一步处理?

例如,我有HTTPS链接:https://www.example.com/request-transfer.aspx?id=12345&sym=hello&name=linda

对于PHP处理结束,如何使用cURL获取这些数据?

我有下面的测试脚本,仅仅使用$ _GET?

// GET
$id   = $_GET['id'];
$sym  = $_GET['sym'];
$name = $_GET['name'];

$data = array("id" => $id, "sym" => $sym, "name" => $name);
$data_string = json_encode($data);

$ch = curl_init('http://localhost/test/process.php');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string))
);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

$input = json_decode($data_string);

echo $input->id.', '.$input->sym.', '.$input->name; 
echo $result;

请告知。

1 个答案:

答案 0 :(得分:1)

到目前为止您的代码看起来还不错,只是不要设置标题。它们将自动设置为GET / POST请求。只有在PUT请求时才需要指定它们。

你可以直接JSON字符串化$ _GET数组。这将允许将任何参数发送到远程站点。如果您想确保只发送有效参数,则表明您已正确完成。您应该测试GET参数是否实际存在。

如果您不想重复长表达式,可以编写一个简短的函数:

function _GET()
{ $n = func_num_args();
  for($i = 0 ; $i<$n ;)
  { $key = func_get_arg($i++);
    $array[$key] = isset($_GET[$key]) ? $_GET[$key] : '';
  }
  return $array;
}

$data_string = json_encode(_GET('id', 'sym', 'name'));