मेरे पास कुछ सरल कोड है जो मैंने PHP में हमारे सरल webservice का उपभोग करने के लिए लिखा है, जिसे मैं पर्ल में उन उपयोगकर्ताओं के लिए भी प्रदान करना चाहता हूं जो उस भाषा को पसंद कर सकते हैं। ऐसा करने के लिए HTTP अनुरोध करने का सबसे आसान तरीका क्या है? PHP में मैं इसे file_get_contents()
के साथ एक पंक्ति में कर सकता हूं।पर्ल में HTTP GET अनुरोध करने का सबसे आसान तरीका क्या है?
यहाँ पर्ल के लिए पूरे कोड बंदरगाह के लिए मैं चाहता हूँ:
/**
* 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;
}
तो ... हमें एलडब्ल्यूपी :: सरल का उल्लेख करने वाले चार प्रतिक्रियाएं मिली हैं, मुझे लगता है कि – davr
का उपयोग करने वाला एक है 'http: // URL' जैसे स्थिर तारों के लिए, काम को perl बचाने के लिए सिंगल कोट्स का उपयोग करना सबसे अच्छा है चीजों को interpolate की तलाश में। – AndrewJFord
स्थैतिक तारों के लिए, डबल कोट्स के साथ कोई _real_ ओवरहेड नहीं है। सिंगल कोट्स का उपयोग करने का कारण यह है कि अगले प्रोग्रामर को यह स्पष्ट करना है कि उन्हें कोड में इंटरपोलेशंस देखने की आवश्यकता नहीं है। –