WebClient.DownloadString result is not match with

2019-03-02 05:56发布

The following code:

WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
string Url = "http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64";
return wc.DownloadString(Url);

code returns:

�Q�T�MP�J�A|�^D����~���C�"�����l� ��;I&3=j=�iG�H9Ȓ�J�^� �j��T�Q=HH�'Qm�������1�hF�4�*�������{�x�\o?

when I visit that URL in any web browser, I get:

12:29:45,A ,3540,3567,3600,3621,3690,3515,140,238204,849582597,1,20140914,122945;;1@2825@3523@3583@1700@1,1@2000@3522@3600@8700@2,1@500@3511@3640@2500@1,;19774,99736,1

is there any way to get right string?

also, I use this online Decoder, but I don't get right answer: Universal Online Decoder

3条回答
The star\"
2楼-- · 2019-03-02 06:31
public class WC : WebClient
{
    protected override WebRequest GetWebRequest(Uri url)
    {
        var request = base.GetWebRequest(url) as HttpWebRequest;
        request.AutomaticDecompression = DecompressionMethods.GZip;

        return request;
    }
}

Usage:

var url = "http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64";
var wc = new WC();
wc.Encoding = Encoding.UTF8;
var result = wc.DownloadString(url);
查看更多
一夜七次
3楼-- · 2019-03-02 06:49

In Linqpad you can run the below code, variation from Webclient. As you can see from the picture, its due to the Gzip compression which browser automatically handles. enter image description here

async void Main()
{
    using (var handler = new HttpClientHandler())
    {
        handler.AutomaticDecompression = DecompressionMethods.GZip;
        using (HttpClient client = new HttpClient(handler))
        {
            var result = await client.GetStringAsync("http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64");
            result.Dump();
        }
    }
}
查看更多
一纸荒年 Trace。
4楼-- · 2019-03-02 06:51

That's not an encoding problem, i think it relates with compression, gzip in this case. Read Uncompressing gzip response from WebClient. That should fix your problem.

查看更多
登录 后发表回答