我熟悉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#)?
答案 0 :(得分:2)
根据您在评论中链接到的网站的快速浏览,看起来预期的功能是向URL发出请求并接收响应。该网站上给出的第一个例子是:
http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100
您可以使用the System.Net.WebClient
object之类的内容来发出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();
(还有the WebRequest
class,它似乎共享大致相同的功能。)
此时result
变量包含API的响应。无论你需要哪种,你都可以处理。
答案 1 :(得分:1)
从Visual Basic代码的外观来看,我认为您应该创建两个方法来将其“转换”为ASP.NET C#网页:
LoadXmlData方法 - 使用XmlDocument
通过XmlDocument
的{{1}}功能从网址加载Load
。请阅读ASP.net load XML file from URL以获取示例。
BuildDisplay方法 - 使用ASP.NET PlaceHolder
或Panel
创建容器,将段落标记和单个结果注入。