项目原因引入了大网站的图片,但是人家做了防盗,问下告诉如何破解(程序或者js解决)
类似于这种解决办法就算了吧http://www.poco.cn/qing/assets/image.php?img_url=图片地址
不胜感谢!
在线等啊,真心求建议和知道~~谢谢
就好比模拟登陆一样,页面需要请求图片,图片链接指向后台,后台将连接转换成指向网站A的链接,然后用HttpRequest去下载这个图片,下载后返回给前端。思路则是C#在后台代码,模仿是当前网站的请求,去下当前网站的图片,具体的属性设置refer什么的。
恩谢谢。。只能这样了
前端发出的请求,你没办法控制请求头的,除非浏览器是你自己的
恩,纠结
@You最温暖的港湾: 你试下看iframe有没有用,能有的思路就是靠他了`
用windowsform的WebBrowser浏览你要浏览的网站,然后引用mshtml.dll,搜索到所有的<img>标签,用下面的方法就可以获取到图片了!
private Image GetWebImage(WebBrowser WebCtl, HtmlElement ImgeTag) { HTMLDocument doc = (HTMLDocument)WebCtl.Document.DomDocument; HTMLBody body = (HTMLBody)doc.body; IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange(); IHTMLControlElement Img = (IHTMLControlElement)ImgeTag.DomElement; //图片地址 Image oldImage = Clipboard.GetImage(); rang.add(Img); rang.execCommand("Copy", false, null); //拷贝到内存 Image numImage = Clipboard.GetImage(); try { Clipboard.SetImage(oldImage); } catch { } return numImage; }
不是windowsform能搞吗?我这是网站。。还有那个dll我没有找到的说~
有图片地址就能下载图片到本地,能下载到本地就能拿过来用
我又回来了,问题解决了
办法
http://local.aspx(自己网站的页面)img_url=要链接的图片地址
local的后台代码
this.Response.Clear();
string url = this.Request["uri"];
if (!string.IsNullOrEmpty(url))
{
WebClient wc = new WebClient();
wc.Headers.Set("Referer", "");
Response.BinaryWrite(wc.DownloadData(url));
wc.Dispose();
}
测试通过!