找回密码  加入

AUTOIT CN

搜索
查看: 108|回复: 2

InetGet 在需要登录下载的网站怎么下载文件?

[复制链接]
发表于 2019-9-7 11:11:38 | 显示全部楼层 |阅读模式
方案1:
Local $acookie="ASP.NET_SessionId=lj50p545rq0ofqj2angm0y55"
Local $rContext=_WinHTTP_GetRespond($hOpen,"http://172.16.10.208:8052/DownLoad.aspx?file=GQ44rjnzP/yJG3UuaVLYkU/eJFAJ2HgMVHQE0fEO9ZSyIa0zHzpmAqEDn0pEC2eTFR/LhPgHvoP6gkW8a9ZMU6YDfWa1Ri30UdPy0iQuhThjHZiv3kZa1EFfaJuvXcDqdpzd3D44aE9aN2O%2BQnhXmdDmrQXJZ8YV",0 + 2 + 4 + 256,50000,"",$acookie,"Content-Type: application/x-www-form-urlencoded")       
msgbox(0,"",BinaryToString($rContext[0],4))

本来想的是用返回的二进制数据写入文件而达到下载文件的目的,结果这个返回的信息是空白,不知道怎么才能下载了,求教大神
方案2:
InetGet("http://172.16.10.208:8052/DownLoad.aspx?file=GQ44rjnzP/yJG3UuaVLYkU/eJFAJ2HgMVHQE0fEO9ZSyIa0zHzpmAqEDn0pEC2eTFR/LhPgHvoP6gkW8a9ZMU6YDfWa1Ri30UdPy0iQuhThjHZiv3kZa1EFfaJuvXcDqdpzd3D44aE9aN2O%2BQnhXmdDmrQXJZ8YV")


这个InetGet下载会自动跳转到未登录主页面,没法下载,求大神指点下,谢谢。

发表于 2019-9-9 16:25:01 | 显示全部楼层
网页每次登录服务器会分配个浏览器线程ID,下载时要带有这个SessionId才给正确的文件下载,InetGet参数太少不好实现,还是用_WinHTTP模拟登录取得SessionId再下载比较好
 楼主| 发表于 2019-9-9 18:50:11 | 显示全部楼层
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://172.16.10.208:8052/DownLoad.aspx?file=GQ44rjnzP/yJG3UuaVLYkU/eJFAJ2HgMVHQE0fEO9ZSyIa0zHzpmAqEDn0pEC2eTFR/LhPgHvoP6gkW8a9ZMU6YDfWa1Ri30UdPy0iQuhThjHZiv3kZa1EFfaJuvXcDqdpzd3D44aE9aN2O%2BQnhXmdDmrQXJZ8YV");
curl_setopt($curl, CURLOPT_COOKIE,  "ASP.NET_SessionId=lj50p545rq0ofqj2angm0y55");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>

找了很多资料,我发现这样可以下载而不是跳转到未登录页面,感觉应该是设置 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 起的作用,如果用winhttp的话怎么设置呢?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2019-9-20 08:17 , Processed in 0.062499 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表