-2

我熟悉 ASP.NET,但不熟悉 Visual Basic。

这是 Visual Basic 代码:

 myxml="http://api.ipinfodb.com/v3/ip-city/?key="&api_key&"&ip=" &UserIPAddress&"&format=xml"
 set xml = server.CreateObject("MSXML2.DOMDocument.6.0")
 xml.async = "false"
 xml.resolveExternals = "false"
 xml.setProperty "ServerHTTPRequest", true
 xml.load(myxml)
 response.write "<p><strong>First result</strong><br />"
 for i=0 to 10
     response.write xml.documentElement.childNodes(i).nodename & "  :  "
     response.write xml.documentElement.childNodes(i).text & "<br/>"
 NEXT
 response.write "</p>"

这段代码发生了什么?

如何将其转换为 ASP.NET (C#)?

4

2 回答 2

2

根据您在评论中链接到的站点的快速浏览,看起来预期的功能是向 URL 发出请求并接收响应。该网站上给出的第一个示例是:

http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100

您可能可以使用对象之类System.Net.WebClient东西来发出 HTTP 请求并接收响应。可以针对您的 URL 修改 MSDN 上的示例。也许是这样的:

var client = new WebClient();
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
var data = client.OpenRead(@"http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100");
var reader = new StreamReader(data);
var result = reader.ReadToEnd();
data.Close();
reader.Close();

(还有class,它似乎共享大致相同的功能。WebRequest

此时,result变量包含来自 API 的响应。您可以根据需要处理。

于 2013-08-08T01:35:54.313 回答
1

从 Visual Basic 代码的外观来看,我认为您应该创建两种方法来将其“转换”为 ASP.NET C# 网页:

  1. LoadXmlData 方法 - 使用' 通过'函数XmlDocument从 URL 加载。例如,从 URL读取ASP.net 加载 XML 文件。XmlDocumentLoad

  2. BuildDisplay 方法 - 使用 ASP.NETPlaceHolderPanel创建一个容器来注入段落标记和单个结果。

于 2013-08-08T01:30:32.370 回答