use JSON;
use WWW::Curl::Easy;
my $curl = WWW::Curl::Easy->new;
$curl->setopt(CURLOPT_NOBODY,1);
$curl->setopt(CURLOPT_TIMEOUT,3);
$curl->setopt(CURLOPT_VERBOSE,0);
$curl->setopt(CURLOPT_URL,$url);
my $response = (what to use here);
my %hash = decode_json($response);
$country = $hash->{body}->{country};
return $country;
#the output from url is in json format.
#but unable to capture that output in a response variable as object.
Я пытаюсь захватить réponse из $url
, который находится в формате JSON в переменной затем использовать decode_json
метод JSON, чтобы преобразовать его в хэш-структуру, чтобы получить код страны. Но я не могу получить ответ в переменной.WWW :: Curl :: Легкий выход не захватить
JSON Output:
{
"headers": {
"ipAddress": ["198.162.1.1"],
"type": ["PUBLIC_IP_ADDRESS"]
},
"body": {
"country": {
"isoCode": "CA",
"name": "Canada",
"geoNameId": 6251999
},
"continent": {
"name": "North America",
"code": "NA",
"geoNameId": 6255149
},
"city": {
"name": "Cranbrook",
"geoNameId": 5931800
},
"traits": {
"ipAddress": "198.162.1.1"
},
"location": {
"latitude": 49.4999,
"longitude": -115.7688,
"timeZone": "America/Edmonton"
},
"postal": {
"code": "V1C"
},
"subdivisions": [{
"name": "British Columbia",
"geoNameId": 5909050,
"isoCode": "BC"
}]
},
"statusCode": "OK"
}
200
Документация [WWW :: Curl :: Easy] (https://metacpan.org/pod/WWW::Curl) говорит, что это непросто. Это _Он не предназначен для автономного модуля, и из-за этого с главной документацией libcurl следует обращаться за подробностями API по адресу http: //curl.haxx.se_. Вы читали это? Я считаю, что вы облегчите свою жизнь, используя вместо этого [LWP :: Simple] (http://p3rl.org/LWP::Simple). – simbabque
@simbabque: Да, я уже сделал то же самое с использованием LWP, но в соответствии с требованиями, которые мне нужно реализовать, используя модуль WWW :: Curl :: Easy. Вот результат json: {"headers": {"ipAddress": ["192.2.2.2"], "type": ["PUBLIC_IP_ADDRESS"]}, "body": {"country": {"isoCode": "US «имя»: «Соединенные Штаты», «geoNameId»: 6252001}, «континент»: {«name»: «Северная Америка», «код»: «NA», «geoNameId»: 6255149}, «город», : {}, "черты": { "Ipaddress": "192.2.2.2"}, "место": { "широта": 37,751, "долгота": - 97,822}, "почтовый": {}}, "StatusCode" : «ОК»} –
Насколько релевантно JSON? Вы знаете, как декодировать JSON и как получить доступ к ключам внутри, это очевидно из вопроса. – simbabque