如题
想从QQ空间里批量下载图片
代码                URL url = new URL(surl);
                HttpURLConnection uc = (HttpURLConnection)url.openConnection();
                
                InputStream is = uc.getInputStream();
                
                FileOutputStream fs = new FileOutputStream(".\\workspace\\result" + "\\" + FileIdMgr.mgr.getId() + Conf.conf.filestyle);
                
                byte[] buf = new byte[1024];
                int c = 0;
                while((c = is.read(buf)) > 0){
                    fs.write(buf, 0, c);
                }
                
                fs.close();
                
                is.close();
                uc.disconnect();
结果下载的图片是这样的但网上显示应该是这样的下载的链接是这样的
http://b200.photo.store.qq.com/psbe?/V13xAI6O2Jq84E/LY2mDX5.0R6j*7fB0U4p6pXPPEF8r1TSikBTvCHl7Kmc*9gP3Lr64lzE9yDO4D16/m/dMgAAAAAAAAAnull&bo=fwKHAwAAAAAFB90!&rf=photolist&t=5
浏览器显示是正常的
鼠标右键图片另存为是正常的
但是,一用程序下载就成但是,我用程序下载这个链接
http://a1.qpic.cn/psb?/V13xAI6O2UBWEY/ldYr4dp0HipVu1BhN6qz2kaFFgckB9AuWSAsvY9*8PA!/m/dAgBAAAAAAAAnull&bo=wAMeAwAAAAAFB*o!&rf=photolist&t=5
又是正常的于是乎,我蒙了。
求大神帮忙啊啊啊啊啊啊啊啊

解决方案 »

  1.   

    有认证的,你打开QQ空间再F12查看一下cookie把里面的key,value全部复杂出来,然后setProperty到connection中就可以了
      

  2.   

    还有,抓到了浏览器右键下载时的包,header是这样的
    GET /psbe?/V13xAI6O2Jq84E/LY2mDX5.0R6j*7fB0U4p6mZpNlnOI8IicsLH*pUAyLf.jfaFt97WLjTZqsY87C.M/b/dMgAAAAAAAAA&bo=fwKHAwAAAAAFB90!&rf=viewer_4 HTTP/1.1
    Host: b200.photo.store.qq.com
    Connection: keep-alive
    Accept: image/webp,image/*,*/*;q=0.8
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0
    Referer: http://user.qzone.qq.com/2965619847?ptlang=2052
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: zh-CN,zh;q=0.8
    Cookie: pgv_pvi=4873054208; RK=ocsGewPiSX; ptui_loginuin=825195983; pgv_pvid=2224394047; pgv_si=s4839044096; ptisp=ctc; ptcz=24eb164d931ed6ee997975f69ddd00997508ffe173fbfdee8c3a74dd3f4f7428; pt2gguin=o0825195983; uin=o0825195983; skey=@Rw3ku1ISR; qzone_check=825195983_1475589588; pgv_info=ssid=s9856885900; rv2=80EB0493630EF6B88D678D9246E9D2F4082CFF1533F308F7FC; property20=D3029014483C69400FECAAFEB77404CA502EF01658A75B41ED86E46192A716813214D56D3766FA3D; qq_photo_key=f15f5f7d19d7c80dbb019753078e65f5
    是仅仅setRequestProperty。cookie里的,还是全要setRequestProperty
      

  3.   

    还有,抓到了浏览器右键下载时的包,header是这样的
    GET /psbe?/V13xAI6O2Jq84E/LY2mDX5.0R6j*7fB0U4p6mZpNlnOI8IicsLH*pUAyLf.jfaFt97WLjTZqsY87C.M/b/dMgAAAAAAAAA&bo=fwKHAwAAAAAFB90!&rf=viewer_4 HTTP/1.1
    Host: b200.photo.store.qq.com
    Connection: keep-alive
    Accept: image/webp,image/*,*/*;q=0.8
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0
    Referer: http://user.qzone.qq.com/2965619847?ptlang=2052
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: zh-CN,zh;q=0.8
    Cookie: pgv_pvi=4873054208; RK=ocsGewPiSX; ptui_loginuin=825195983; pgv_pvid=2224394047; pgv_si=s4839044096; ptisp=ctc; ptcz=24eb164d931ed6ee997975f69ddd00997508ffe173fbfdee8c3a74dd3f4f7428; pt2gguin=o0825195983; uin=o0825195983; skey=@Rw3ku1ISR; qzone_check=825195983_1475589588; pgv_info=ssid=s9856885900; rv2=80EB0493630EF6B88D678D9246E9D2F4082CFF1533F308F7FC; property20=D3029014483C69400FECAAFEB77404CA502EF01658A75B41ED86E46192A716813214D56D3766FA3D; qq_photo_key=f15f5f7d19d7c80dbb019753078e65f5
    是仅仅setRequestProperty。cookie里的,还是全要setRequestProperty一般放cookie的就行了.