问题
I have been extracting information from the iTunes App Store for the past couple of weeks using a script I found and modified. Everything was working fine until a couple days ago when I realized that no XML was being generated anymore. Here is the code for the script that generates the XML:
<?php
header("Content-type: text/plain");
ini_set('display_errors', false);
if(isset($_GET['appID']))
{
$appID = (int)stripslashes($_GET['appID']);
$url = "http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=" . $appID . "&mt=8";
$useragent = "iTunes/9.0.2 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.21.8";
$header = array("X-Apple-Store-Front: 143441-1");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
}
?>
So I added the HTTPHEADER option to no avail, but the kicker is that it works perfectly well when I go to Terminal and type this:
curl -s -A "iTunes/9.0.2 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.21.8" -H "X-Apple-Store-Front: 143441-1" 'http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=339038562&mt=8'
It returns the XML that I need, but why won't the PHP script work?
Appreciate any help!
回答1:
Works fine for me. Here are few things to think about:
- Are you sure
$GET['appID']
is set? Perhaps the script is being run via a POST? - Comment out
ini_set('display_errors', false);
and see if any notices/warnings/errors appear. - Is the script running on the same box as the curl command line?
回答2:
Just as a side note, if you're trying to access a https iTunes page, you may need to set the following:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
来源:https://stackoverflow.com/questions/1989858/retrieving-itunes-app-store-xml-with-curl-and-php