2010-09-07 59 views
1

我有這個特定的方法(片段下面),我想要得到的XML結果。我有一個WebGet方法,我怎樣才能得到XML結果?

服務器

[OperationContract] 
[WebGet(UriTemplate = "getcustomerschema/userCode={userCode}/password={password}", 
    ResponseFormat= WebMessageFormat.Xml, 
    RequestFormat= WebMessageFormat.Xml, 
    BodyStyle= WebMessageBodyStyle.Wrapped)] 
public DataSet GetCustomerSchema(string userCode, string password) 
{ 
    //method  
} 

客戶

using (HttpResponseMessage response = m_RestHttpClient.Get("getcustomerschema/userCode=admin/password=admin")) 
{ 
    //how can I get the xml resuly from the httpResponseMessage? 
} 

感謝

回答

0

數據集DST =新的DataSet(); dst.ReadXml(response.Content.ReadAsStream(),XmlReadMode.ReadSchema);

這是我如何轉換的HttpResponse的數據的集合,然後,如果我需要的XML我剛剛從數據中提取此設置

希望這有助於其他REST開發商

0

爲什麼你需要直接XML結果?

您可以使用Fiddler來查看從Web服務接收到的xml,如果這是您所追求的。

也可以在添加Web引用對話框中直接從Visual Studio中調用Web服務。

+0

感謝您的建議符文... .i實際上使用fiddler來調試。我關心的是如何在客戶端應用程序中獲取原始xml。謝謝 – Ravi 2010-09-08 10:59:39

1

使用HttpResponseMessage,您可以通過「Content」屬性訪問xml響應。

HttpResponseMessage resp = http.Get("friends_timeline.xml"); 
resp.EnsureStatusIsSuccessful(); 
XElement document = resp.Content.ReadAsXElement(); 

從拉到:http://msdn.microsoft.com/en-us/library/ee391967.aspx

+0

只能是:ReadByByte(),ReadByStream()或ReadByString()....你是如何得到ReadAsXlement()<---你添加了另一個引用或? – Ravi 2010-09-08 10:58:55

+1

「請記住,您需要引用Microsoft.Http.Extensions程序集,並且需要爲System.Xml.Linq的文件添加using語句 - 假設您已完成這兩個步驟,則應該請參閱Content屬性的intellisense中的ReadAsXElement。「 - http://msdn.microsoft.com/en-us/library/ee391967.aspx – 2010-09-09 08:59:39