这是我如何做一个REST API调用和我的url是在$url
下面。我在WAMP服务器上运行它,基本上我已经保存了这个php(test.php)文件www
文件夹,当我执行url (localhost//test.php)
,我得到500内部服务器错误。我基本上想运行URL($url
),当我运行PHP脚本。我该如何克服这个问题?
<?php
$method = "POST";
$accessKey = "myaccesskey";
$secretKey = "mysecretkey";
date_default_timezone_set("UTC");
$timeString = date("D, d M Y H:m:s", time()) . ' GMT';
$url = "http://myurl.com";
$signature = GenerateSignature($secretKey, $method, $timeString);
$authorization = $accessKey . ":" . $signature;
$ListDEsc = "test new description";
$data = "ListDEsc=" . $ListDEsc;
var_dump(CallAPI($method, $url, $timeString, $authorization, $data));
function CallAPI($method, $url, $timeString, $authorization, $data = false)
{
$curl = curl_init();
switch ($method)
{
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_PUT, 1);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
$accept = 'application/json';
an so on...
下面的帖子一开始看起来很有希望,但他们的目标与我的不同。
错误日志:在C: ' wamp '日志
我看到两个新创建的文件apache_error
和php_error
。
在php_error
中我有以下内容:
[22-Jul-2014 16:40:53 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll' - The specified module could not be found.
in Unknown on line 0
在apache_error
中我有以下内容:
[Tue Jul 22 09:40:44.898375 2014] [mpm_winnt:notice] [pid 7672:tid 404] AH00455: Apache/2.4.9 (Win32) PHP/5.5.12 configured -- resuming normal operations
[Tue Jul 22 09:40:44.959381 2014] [mpm_winnt:notice] [pid 7672:tid 404] AH00456: Apache Lounge VC11 Server built: Mar 16 2014 12:13:13
[Tue Jul 22 09:40:44.959381 2014] [core:notice] [pid 7672:tid 404] AH00094: Command line: 'c:''wamp''bin''apache''apache2.4.9''bin''httpd.exe -d C:/wamp/bin/apache/apache2.4.9'
[Tue Jul 22 09:40:45.031389 2014] [mpm_winnt:notice] [pid 7672:tid 404] AH00418: Parent: Created child process 7148
[Tue Jul 22 09:40:54.412327 2014] [mpm_winnt:notice] [pid 7148:tid 320] AH00354: Child: Starting 64 worker threads.
浏览器错误如下:
string '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>500 - Internal server error.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7'... (length=2007)
Test Done查看Curl
运行如下脚本:
<?php
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://www.google.com');
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer)){
print "Nothing returned from url.<p>";
}
else{
print $buffer;
}
?>
以上脚本来源:我被成功引导到google.com网页
要确保在Apache/bin文件夹中生成了所有正确的SYMLINK,请执行以下操作。
使用wampmanager菜单点击Apache的版本号,强制wampmanager重新生成SYMLINK。
cURL使用libay32 .dll和ssleay32.dll,可能还没有为这两个库创建SYMLINKS。
wampmanager -> Apache -> Version -> Apache -> 2.4.9