使用 Windows wininet.dll 函数的 xml 文件的 Dld 失败

Posted

技术标签:

【中文标题】使用 Windows wininet.dll 函数的 xml 文件的 Dld 失败【英文标题】:Dld of an xml-file failed using Windows wininet.dll function 【发布时间】:2015-09-28 09:35:30 【问题描述】:

两年多来,它运行良好。我dld。每个星期天一个 csv.file。但现在 csv 不再可用(404 错误)。 但是有一个 xml 文件,我想以同样的方式下载它 具有相同的 wininet 功能 - 只是使用另一个 url。 之前的 csv-url 看起来像:

  http://calendar.forex-tsd.com/calendar.php?csv=1&date=20150927&calendar[]=4&gmt=0

现在应该(必须)是:

  string strUrl = "http://www.forexfactory.com/ffcal_week_this.xml";
  string moz = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)";
  int HttpOpen=InternetOpenW( moz, 0,"0","0",0);
  // NO Error, handle is: 2214592768
  uint x =   INTERNET_FLAG_NO_CACHE_WRITE 
           | INTERNET_FLAG_PRAGMA_NOCACHE
           | INTERNET_FLAG_RELOAD;

  int HttpRequest = InternetOpenUrlW(HttpOpen,strUrl,"0", 0, x, 0 ); 
  err = getWinErrors(); // Error: 12150 
                        // ERROR_WINHTTP_HEADER_NOT_FOUND:
                        // The requested header cannot be located.

嗯? 在 InternetOpenUrlW(..) 'my' header = "0" 中,它的长度设置为 0 xml 文件看起来像这样:

  <?xml version="1.0" encoding="windows-1252"?>
  <weeklyevents>
     <event>
        <title>Daylight Saving Time Shift</title>
        <country>NZD</country>
        <date><![CDATA[09-26-2015]]></date>
        <time><![CDATA[2:00pm]]></time>
        <impact><![CDATA[Holiday]]></impact>
        <forecast />
        <previous />
     </event>
     <event>
  ...
     </event>
     <event>
        <title>Daylight Saving Time Shift</title>
        <country>AUD</country>
        <date><![CDATA[10-03-2015]]></date>
        <time><![CDATA[4:00pm]]></time>
        <impact><![CDATA[Holiday]]></impact>
        <forecast />
        <previous />
     </event>
  </weeklyevents>

标题要怎么写? 提前致谢! 古力

【问题讨论】:

【参考方案1】:

我找到了答案! Metatrader - 上次更新构建 890 之前的 4 - 无法“理解”NULL!我们必须使用“0”。但是现在 this 会导致错误,因为它现在接受并理解 NULL(无错误)并且使用“0”失败。

  InternetOpenUrlW(HttpOpen,strUrl, NULL, 0, x, 0 ); // working

叹息。 总之谢谢!

【讨论】:

以上是关于使用 Windows wininet.dll 函数的 xml 文件的 Dld 失败的主要内容,如果未能解决你的问题,请参考以下文章

windows7因为计算机中丢失wininet.dll

WININET.InternetConnect 在 Windows 8 中失败

使用 VS2010 在 C# 上出现 Wininet.dll 错误

如何使用 wininet.dll 对代理进行身份验证?

使用 wininet.dll api 从 FTP 站点搜索和检索文件名

Wininet.dll 在提取 cookie 时崩溃 excel 64 位