English 中文(简体)
WebClient problem with URL which end with a period
原标题:WebClient problem with URL which ends with a period
  • 时间:2009-11-11 17:12:43
  •  标签:

• 操作以下法规:

using (WebClient wc = new WebClient())
{
    string page = wc.DownloadString(URL);
    ...
}

查阅股份价格网站。 http://www.commprice.co.uk

如果你在URL的结尾处贴上一家公司的象征名称,那一页就会被退回,而I parse是为了获得最新的价格信息等。

e.g.

http://www.commprice.co.uk/VOD

http://www.commprice.co.uk/TW

现在,我的问题是,有些标志在时间上结束,如第二例。 由于一些不为人知的原因,上述法典存在一个问题,可追溯到这些类型的URLs。

没有任何时间错误,但一个网页被回来,报告“无法找到代谢物”,指出在“下载”电话和“吉大港”实际请求之间,“URL”的结尾处发生了一些事情。

是否有任何想法可能造成这种情况? 如何加以纠正?

增 编

最佳回答

似乎你在WebClient/WebRequest中发现了一个ug子,尽管微软可能有意地表明了这一点。 然而,当你在TW.通过时,URI的班子将这段话翻译成TW,没有时间。 由于WebClient/WebRequest parse strings into URI,你正在这个世界上消失。

你也许必须利用TcpClient来接手,并推出自己的网络客户。 任何改动:

TcpClient oClient = new TcpClient("www.shareprice.co.uk", 80);

NetworkStream ns = oClient.GetStream();

StreamWriter sw = new StreamWriter(ns);
sw.Write(
   string.Format( 
      "GET /{0} HTTP/1.1
User-Agent: {1}
Host: www.shareprice.co.uk

",
           "TW.", 
           "MyTCPClient"  )
);                    
sw.Flush();

StringBuilder sb = new StringBuilder();

while (true)
{
    int i = ns.ReadByte(); // Inefficient but more reliable 
    if (i == -1) break;  // Other side has closed socket 
    sb.Append( (char) i );   // Accrue  c  to save page data 
}

oClient.Close();

这将给你带来302个间接方向,从而把地点划出:与新地点一道执行上述任务。

HTTP/1.1 302 Found
Date: Wed, 11 Nov 2009 19:29:27 GMT
Server: lighttpd
X-Powered-By: PHP/5.2.4-2ubuntu5.7
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: /TW./TAYLOR-WIMPEY-PLC
Content-type: text/html; charset=UTF-8
Content-Length: 0
Set-Cookie: SSID=668d5d0023e9885e1ef3762ef5e44033; path=/
Vary: Accept-Encoding
Connection: close
问题回答

在该期限之后,添加斜线。 你们的正常网络浏览器会这样做,而网上浏览器的号码就是这样。

http://www.shareprice.co.uk/TW./

这对我来说也是这样,当时我把它打入了浏览器。

www.un.org/Depts/DGACM/index_spanish.htm Edit - Add

下列人员也在浏览器中工作。

http://www.shareprice.co.uk/TW

以及

。 http://www.commprice.co.uk/TW/

so it looks like you should be able to just check to see if the last character is a period, 以及 remove it.

URL encoding...it将“......”变为%2E

在《欧洲刑法》结尾处仅处理一段时期的问题:

<system.web>
             <httpRuntime relaxedUrlToFileSystemMapping="true" /> 
</system.web>

处理两个期间(......)或其他被拒绝的顺序,见以下条款:

在该期间之后仅增加一个空间,届时将拆除空间,但时间将留在那里。





相关问题
热门标签