C# 如何使WebClient在C中逐行读取#

C# 如何使WebClient在C中逐行读取#,c#,webclient,C#,Webclient,因此,我这里有一些代码将MD5哈希与Web服务器上的哈希进行比较 不是在.php文件中,也不是在普通的.txt文件中 这是密码 WebClient wc = new WebClient(); var md5signatures = wc.DownloadString("http://examplesite/MD5base.txt"); if (md5signatures.Contains("9801b7c917063b8b36f8de97098e9

因此,我这里有一些代码将MD5哈希与Web服务器上的哈希进行比较 不是在.php文件中,也不是在普通的.txt文件中 这是密码

        WebClient wc = new WebClient();
        var md5signatures = wc.DownloadString("http://examplesite/MD5base.txt");
        if (md5signatures.Contains("9801b7c917063b8b36f8de97098e9c66"))
        {
            StatusLabel.Text = "MD5 Found In Website";
            StatusLabel.ForeColor = Color.Green;
        }
        else
        {
            StatusLabel.Text = "MD5 Not Found In Website";
            StatusLabel.ForeColor = Color.Red;
        }
这是我网站上的.txt文件(我用examplesite作为例子,显然不是真正的代码)

我用驱动器上的一个.txt文件完成了这个精确的程序,它工作得非常好 没有问题(我想这是因为我使用了File.ReadAllLines,我马上就会看到)

但当我将相同的.txt文件上传到Web服务器时,事情实际上变得复杂得多 我认为发生这种情况的原因是,WebClient无法控制逐行读取内容,我所知道的就是DownloadString,我很确定它会将哈希值放在一起,就像这样

而不是

e787763e761b600730c38b3c47d62f2b
3ba70d4dcaf1817cac0feb0cb2cd26c0

3ba6e302c6d872dc8bf71050e9f4c2f0e787763e761b600730c38b3c47d62f2b

两个散列有点相互附加

任何帮助都将不胜感激,因为我在这个问题上被难住了一段时间
如果我在这里有任何不正确的地方,请让我知道。

您是否尝试过使用newline处理方法?WebClient将按原样下载文件内容。如果有换行符,结果字符串将包含换行符,与原始文本文件相同。但是,您使用的是
md5signatures.Contains(…)
,因此换行类型无关紧要。如果要转换字符串数组中的字符串,请同时拆分
\n
\r
,删除空结果(即
StringSplitOptions.RemoveEmptyEntries
),这样文件就不包含任何
0x10
0x13
字节?你是怎么上传这个文件的?您是否尝试过在调试模式下使用Visual Studio的默认文本查看器读取字符串?编辑:好的,删除评论。您是否再次检查了结果字符串,发现了不同的证据?抱歉,但在调试模式下查看它是什么意思?我在文本编辑器中打开它,它看起来和我一样:/i我可能遗漏了什么。我是在visual studio中打开的,顺便说一句,在调试代码时,在
var md5signatures=wc.DownloadString(…)
之后的行中添加一个断点(
if
条件,或在两者之间插入
Console.WriteLine(md5signatures)
)。然后用鼠标指针悬停
md5signatures
,查看出现的镜头,单击向下箭头并选择
Text Visualizer
。看看它显示了什么。但是,正如alredy提到的,您使用的是
Contains()
:如果字符串在那里,您仍然可以找到它。还有一个与编码相关的问题:默认情况下,WebClient使用
encoding.default
读取响应。
e787763e761b600730c38b3c47d62f2b
3ba70d4dcaf1817cac0feb0cb2cd26c0