【问题标题】:Download string/file from site with webclient in .net在 .net 中使用 webclient 从站点下载字符串/文件
【发布时间】:2016-07-23 08:07:54
【问题描述】:

谁能帮我从这个网站下载字符串 我使用此代码,但

    Dim client As New Net.WebClient
    Dim str As String = client.DownloadString("

http://www.tsetmc.com/tsev2/chart/data/IndexFinancial.aspx?i=32097828799138957&t=ph")

结果不同。

真正的数据是数字

"20081206,9249,9168,9249,9178,8539624,9178;20081207,9178,9130,9178,9130,11752353,9130"

但结果就像 "‹ ŠÜT ÿdë’í,«…ohýˆg­}ÿ÷µyÆdöûuuQà”ÄxD¬Ï³K}æ¿Sûù"

【问题讨论】:

  • goo.gl 是一个链接缩短服务,您必须获取直接链接才能获取 pdf 的文本,因为 WebClient 不会重定向到实际页面。
  • 谢谢我知道我应该使用直接网址,我在这里写短链接是有原因的

标签: vb.net webclient downloadstring


【解决方案1】:

您应该在调用 DownloadString 之前先设置 webclient 的编码。使用此代码尝试。

    Dim client As New Net.WebClient
    client.Encoding = Encoding.UTF8
    Dim str As String = client.DownloadString("http://goo.gl/JRvlsm")

【讨论】:

  • 谢谢我使用你的代码,但结果是一样的“���T�d���,��oh��g�}���yƐd��uuQ��xD�ϳK} S��w���o�vf�"��:��O���+e��F�Y�? ��Ae��o��?��^wY]Tf���(����km�ʬ*2�S���2��)�2뼹��0}�3g|3�� Z(�5��E����EdN=0n&a��(k7�Y���ڄ=��Q�s�ʬ"
  • 无法查看问题所在。您可以查看此链接encoding for webclient 以获得更多帮助。
  • 我不明白这个code你能帮我更多吗
【解决方案2】:

如果您“获取”链接的标题:

 Status:200
 Raw:
 HTTP/1.1 200 OK
 Cache-Control: public, max-age=9999
 Content-Length: 33183
 Content-Type: text/csv; charset=utf-8
 Content-Encoding: gzip
 Expires: Sat, 23 Jul 2016 02:32:58 GMT
 Last-Modified: Fri, 22 Jul 2016 23:46:19 GMT
 Vary: *
 Set-Cookie: ASP.NET_SessionId=vsxyok45zvtgsbvp4iqxdh45; path=/; HttpOnly
 X-Powered-By: ASP.NET
 Date: Fri, 22 Jul 2016 23:46:19 GMT

 Request:
 GET /tsev2/chart/data/IndexFinancial.aspx?i=32097828799138957&t=ph HTTP/1.1

您发现数据是 gzip 压缩的(请参阅“Content-Encoding:”行)。要解决这个问题,请使用以下代码:

    Dim myUrl As String = "http://www.tsetmc.com/tsev2/chart/data/IndexFinancial.aspx?i=32097828799138957&t=ph"
    Dim result as string
    Using client As New WebClient
        client.Headers(HttpRequestHeader.AcceptEncoding) = "gzip"
        Using rs As New GZipStream(client.OpenRead(myUrl), CompressionMode.Decompress)
            result = New StreamReader(rs).ReadToEnd()
        End Using
    End Using

结果是未压缩的文本,正如您指出的正确数字集:

20081206,9249,9168,9249,9178,8539624,9178;20081207,9178,9130,9178,9130,11752353,9130;

这里是我找到解压缩 gzip 的信息的地方(那里有更多信息):

Automatically decompress gzip response via WebClient.DownloadData

注意:您可能需要在项目中为“System.IO.Compression”添加引用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    相关资源
    最近更新 更多