使用cURL发布到XML,Noob在这里学习

时间:2015-08-17 02:31:51

标签: php curl

您好我正在尝试用cURL编程。 但还没有开始它还给我机智服务器内部错误。 cURL中的给定代码有什么问题吗?

<?php';
$now = new DateTime();
$url = "smsx.ia.com.my";
$parameters = array(
'UserID' => 'something@gmail..com',
'Version' => '1.0',
'Action' => 'ProductCreate',
'Timestamp' => $now->format(DateTime::ISO8601),
);
// Sort parameters by name
ksort($parameters);
$params = array();
foreach ($parameters as $name => $value) {
$params[] = rawurlencode($name) . '=' . rawurlencode($value);
}
$strToSign = implode('&', $params);
// Compute signature and add it to the parameters
$parameters['Signature'] =
rawurlencode(hash_hmac('sha256', $strToSign, $api_key, false));

// Build Query String
$queryString = http_build_query($parameters, '', '&', PHP_QUERY_RFC3986);
// Open Curl connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url."?".$queryString);
// Save response to the variable $data
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlPayload);
$data = curl_exec($ch);
// Close Curl connection
curl_close($ch);

if (isset($_POST['Submit'])) {


}

?>

<form action="" method="post">

<input type="submit">
</form>

所以我试图将信息发布到URL,但我只是加载网站,它给我系统内部错误。 不能继续下去。

知道为什么我要面对这个问题吗?

1 个答案:

答案 0 :(得分:0)

首先,如果要发布XML数据,则必须指定要在发布数据中发送XML的服务器。我无法在您的代码中看到这一点。

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml; charset=utf-8'));

其次,请确保您正确准备$queryString件事。否则也可能引发内部服务器错误。

最后,只是好奇,您确定在代码的第一行';之后<?php了吗?