RT,当前我调用open api返回来的微博数据中,如果微博中包含有图片,图片的地址都是以app.qlogo.cn开头的,比如http://app.qpic.cn/mblogpic/515d88b9c14e8a53eea2这个图片地址不能直接在浏览器里面直接打开查看图片,我通过HttpRequest(C#)获取图片流也失败了。异常提示“远程服务器返回错误:(400)错误的请求”。(下面是我的猜想)这个链接无法在浏览器中直接打开,浏览器也没有跳转,这说明这个服务器确实不存在。从我用这个url字符串在google上搜索的结果中看,还是有一些博客中提到这样的地址。这说明并不是图片服务器的问题。问题:这种类型的图片url真的是正常的吗?如果是,请问我需要如何获取图片?谢谢!获取图片

解决方案 »

  1.   

    楼主,通过HttpRequest(C#)获取图片流,返回的是404错误不?
      

  2.   

    楼主应该有地方弄错了,你获取了图片,图片有大小的,小图120,大图460,如你上面的http://app.qpic.cn/mblogpic/515d88b9c14e8a53eea2,小图就是http://app.qpic.cn/mblogpic/515d88b9c14e8a53eea2/120,大图http://app.qpic.cn/mblogpic/515d88b9c14e8a53eea2/460这样就能获取了
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://app.qpic.cn/mblogpic/515d88b9c14e8a53eea2/120");
         
                    request.Method = "GET";
                    request.Timeout = 10000;
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    return response.GetResponseStream();
      

  3.   

    非常感谢!加上图片大小就成功了,不过你是如何得知图片大小的?这个url里面并没有不能看出来小size是120呀。我刚刚试了一下,120,150,240,460这几个size都可以,这个范围中的其他好像都不行,同样返回400错误。
      

  4.   

    这个是腾讯默认指定的几个图像大小,微博中直接显示的是120,点击图片可以放大,就是这更换的后面的值对于有些比较大得图片,size应该肯定会有超过460的。就像我要点击“查看原图”一样,图片会单独在新的网页上显示,这种原始尺寸我需要如何获取?
      

  5.   

    120,150,240,460这些并不是图片的大小宽度, 是默认的值,从最小的60开始,500也可以。最微博中,正常显示的是120,点击查看大图的是460刚刚我又发现了一点,原来真正最大的图片size是2000。这个数值可以获取到每一张图片的最大大小。
    不过我还是有两个问题:
    (1)flyer_ren你是如何发现这些size数值的?腾讯有公开这样的文档吗?如果有,请告诉我链接或者我需要如何搜索到。非常感谢!
    (2)为什么这些微博图片的地址都是以app.qlogo.cn开头的?通过PC版网页上查看微博原图时图片的地址是以http://t2.qpic.cn/mblogpic/开头的。这两个地址有什么区别?谢谢!
      

  6.   


    (1)以前研究过这个东西,http://app.qpic.cn/mblogpic/515d88b9c14e8a53eea2/ 刚开始是这样请求的,获取的120的小图,后来需要大图,就从微博上查询,右键查看源文件,发现后面跟着大小,换了几个不同图片,基本都是小图120,大图460.
    (2)这个不太清楚,应该是腾讯为了分压或者这样分开,腾讯自己的微博跟api调用的好管理吧