我有一些代码,我写在PHP中消耗我们简单的webservice,我也想提供给Perl的用户可能更喜欢这种语言。什么是最简单的方法来做一个HTTP请求呢?在PHP中,我可以在一行中使用file_get_contents()。
这里是我想要移植到Perl的整个代码:
/** * Makes a remote call to the our API,and returns the response * @param cmd {string} - command string ID * @param argsArray {array} - associative array of argument names and argument values * @return {array} - array of responses */ function callAPI( $cmd,$argsArray=array() ) { $apikey="MY_API_KEY"; $secret="MY_SECRET"; $apiurl="https://foobar.com/api"; // timestamp this API was submitted (for security reasons) $epoch_time=time(); //--- assemble argument array into string $query = "cmd=" .$cmd; foreach ($argsArray as $argName => $argValue) { $query .= "&" . $argName . "=" . urlencode($argValue); } $query .= "&key=". $apikey . "&time=" . $epoch_time; //--- make md5 hash of the query + secret string $md5 = md5($query . $secret); $url = $apiurl . "?" . $query . "&md5=" . $md5; //--- make simple HTTP GET request,put the server response into $response $response = file_get_contents($url); //--- convert "|" (pipe) delimited string to array $responseArray = explode("|",$response); return $responseArray; }
解决方法
LWP ::简单:
use LWP::Simple; $contents = get("http://YOUR_URL_HERE");