Tengo un código que he escrito en PHP para consumir nuestro sencillo servicio web, que también me gustaría ofrecer en Perl para los usuarios que prefieran ese idioma. ¿Cuál es el método más simple de hacer una solicitud HTTP para hacer eso? En PHP puedo hacerlo en una línea con file_get_contents()
.¿Cuál es la forma más sencilla de realizar una solicitud HTTP GET en Perl?
Aquí es todo el código Quiero puerto de 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;
}
así que ... tenemos cuatro respuestas que mencionan LWP :: Simple, supongo que es la que se usa – davr
Para cadenas estáticas como 'http: // URL', es mejor usar comillas simples para guardar perl el trabajo de buscar cosas para interpolar. – AndrewJFord
Para cadenas estáticas, no hay _real_ overhead con comillas dobles. La razón para usar comillas simples es dejar en claro al siguiente programador que no necesita buscar interpolaciones en el código. –