当我运行此命令时:
wget \
--post-data="theAccountName=USERNAME&theAccountPW=PASSWORD" \
--cookies=on \
--keep-session-cookies \
--save-cookies=cookies.txt \
-O - \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg > /dev/null
创建了一个名为cookies.txt
的文件,其中包含类似于以下内容:
developer.apple.com FALSE / FALSE 0 XXXXXXXXXXXXXXXX XXXXXXXXXXXX
developer.apple.com FALSE / FALSE 0 developer.sessionToken
我的不确定,但我认为应该比这更复杂(具体来说,在sessionToken
后面应该是一个字母数字字符串)。
当我尝试使用以下curl命令来执行同样的操作时:
curl \
-d "theAccountName=USERNAME&theAccountPW=PASSWORD" \
-c xcode-cookie \
-A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
我得到了一个名为xcode-cookie
的文件,它包含与wget给出的cookies.txt
文件相同的信息,但行是反向的。
然后我尝试下载.dmg文件。
使用wget:
wget \
--cookies=on \
--load-cookies=cookies.txt \
--keep-session-cookies \
http://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
这给我生成了一个名为login?appIdKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&path=%2F%2Fios%2Fdownload.action?path=%2Fios%2Fios_sdk_4.1__final%2Fxcode_3.2.4_and_ios_sdk_4.1.dmg
的文件,它只是一个包含开发者网站的登录表单的HTML页面。
使用curl:
curl \
-b xcode-cookie \
-c xcode-cookie \
-O -v \
-A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" \
https://developer.apple.com/ios/download.action?path=/ios/ios_sdk_4.1__final/xcode_3.2.4_and_ios_sdk_4.1.dmg
这基本上打印出与wget相同的东西(减去HTML)。
我想说这可能与sessionToken不在cookie中有关,但像我之前说的那样,我不确定。我甚至尝试了从浏览器导出cookies并按照我在下面链接的博客文章和其他几个搜索帮助时找到的指示进行操作。
除非自从10月10日以来Apple已经改变了某些事情,否则我一定做错了什么因为这个人似乎做对了什么。
提前致谢!