使用 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 失败的主要内容,如果未能解决你的问题,请参考以下文章
WININET.InternetConnect 在 Windows 8 中失败
使用 VS2010 在 C# 上出现 Wininet.dll 错误