【发布时间】:2016-08-15 22:41:47
【问题描述】:
我试图让我的 C# 程序从一个地址(http://example.com/test.txt,obvs 这不是真实地址)下载文件
如图所示,我设置了 Webclient 并使用了 DownloadFile():
WebClient client = new WebClient();
string filename = @"C:\test_dwl.txt";
client.DownloadFile("http://example.com/test.txt", filename);
我知道 test.txt 文件应该包含什么。但是,在我运行我的 c# 代码后,然后打开 C:\test_dwl.txt 它不包含预期的数据。
它只是说:
此网站需要 Javascript 才能运行,请在您的浏览器中启用 Javascript 或使用支持 Javascript 的浏览器
让我困惑的是为什么它提到了 Javascript?我确定文件可以直接下载。如果我将地址直接输入 chrome (http://example.com/test.txt) - 它会下载正确的文件。
我在这里做错了吗?还是我需要在 C# 中使用不同的方法来下载这些文件。
谢谢
编辑:这就是 chrome 开发工具显示的内容
<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("e99c963ef2ec3e7d2f9e25eb2b02827b");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; document.cookie="referrer="+escape(document.referrer); location.href="http://example.com/test.txt?ckattempt=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
如何在 c# 中使用它??
【问题讨论】:
-
嗯,那个 url 没有指向你认为它应该指向的文件。“我在这里做错了吗?” --- 你大概请求了错误的 url。
-
不,我确定这是正确的链接。就像我说的,将 url 输入 chrome 可以工作。事实上,在 Visual Studios 中按 Ctrl+单击链接会在 Visual Studio 中打开一个选项卡,其中包含正确的数据????
-
检查 chrome 开发者工具(按 f12),网络选项卡,当你这样做的时候。它可能是在下载一个 js 文件,然后下载实际的文本文件。
-
我不确定如何使用 chrome 开发工具?能不能大致指导一下。如果这就是他们所要求的,是否可以将 Javascript 嵌入到 c# 程序中?
-
尝试在 Chrome 开发工具打开的情况下导航到该 URL。查看任何网络活动,您可能会看到服务器可能会在您请求“文件”时使用 JavaScript 提供一些 HTML(包含您看到的文本)。然后,该 JS 会将您重定向到您尝试下载的文件。