0

所以我用 netbeans 创建了一个简单的 RESTful 服务,并在 localhost 中生成了一个 XML 文件http://localhost:8080/testXML/webresources/entities.categoryid

这个页面里面只有一个简单的xml文件格式:

<categoryids>
  <categoryid>
    <CategoryID>id1111</CategoryID>
    <CategoryName>Study</CategoryName>
  </categoryid>
</categoryids>

我正在使用 C# 读取 xml 文件,将它们放入数据集,最后放入 datagridview。我该怎么做呢?它可以在本地(sample.xml)使用

ds.ReadXml(Application.StartupPath + "\\XML\\sample.xml", XmlReadMode.Auto);
dv = ds.Tables[0].DefaultView; 

但是它不适用于本地主机

ds.ReadXml("http://localhost:8080/testXML/webresources/entities.categoryid", XmlReadMode.Auto);

有没有办法做到这一点?

编辑:

NullRferenceException: Object reference not set to an instance of an object.

表示datagridview为空

edit2:对不起,它应该是“ReadXml”而不是“WriteXml”

4

1 回答 1

2

问题是您的 DataSet.ReadXml()-Method 无法从 URL 读取,因为您必须发送 GET-Request(参考http://msdn.microsoft.com/en-us/library/system.data .dataset.readxml%28v=vs.80%29.aspx)。您需要发送一个 Web 请求来与您的 RESTful 服务对话:

WebRequest request = WebRequest.Create ("http://localhost:8080/testXML/webresources/entities.categoryid");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
ds.ReadXml(dataStream);
dataStream.Close();
response.Close();
...

我希望这对你有用。

于 2013-10-17T08:07:29.890 回答