Mam pewien kod, który napisałem w PHP do korzystania z naszej prostej usługi sieciowej, którą chciałbym podać w Perlu dla użytkowników, którzy mogą preferować ten język. Jaka jest najprostsza metoda wykonania żądania HTTP, aby to zrobić? W PHP mogę to zrobić w jednym wierszu z file_get_contents()
.Jaki jest najprostszy sposób utworzenia żądania HTTP GET w Perlu?
Oto cały kod Chcę portu do 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;
}
więc ... mamy cztery odpowiedzi wspominające LWP :: Prosto, myślę, że to ten, który używa – davr
W przypadku ciągów statycznych, takich jak "http: // URL", najlepiej używać pojedynczych cudzysłowów do zapisywania perla w pracy szukania rzeczy do interpolacji. – AndrewJFord
W przypadku ciągów statycznych nie ma żadnego _real_ kosztów ogólnych z podwójnymi cudzysłowami. Powodem używania pojedynczych cudzysłowów jest wyjaśnienie następnemu programistowi, że nie muszą szukać interpolacji w kodzie. –