Netlink2
asked on
Convert Rest response to DataSet at client c#
I'm returning a DataSet with my Rest Call. How can I read it back into a DataSet or JSON or XML at the client?
My server code is:
public DataSet GetDataSet(string strSQL)
{
DataSet ds = new DataSet();
//populate ds here
return ds;
}
my contract is:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrappe d, UriTemplate = "MyHttpGetDataSet/{value}" )]
DataSet GetDataSet(string value);
my client code is:
HttpClient client = new HttpClient();
String url = System.Web.HttpUtility.Htm lEncode("http://localhost:3729/HttpService.svc/MyHttpGetDataSet/SELECT id FROM Table1");
HttpResponseMessage wcfResponse = client.GetAsync(url).Resul t;
HttpContent stream = wcfResponse.Content;
var data = stream.ReadAsStringAsync() ;
Reading data.Return.ToString() shows:
<GetDataSetResponse xmlns=\"http://tempuri.org/\"><GetDataSetResul t><xs:sche ma id=\"NewDataSet\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"\" xmlns:msdata=\"urn:schemas -microsoft -com:xml-m sdata\"><x s:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\" true\"><xs :complexTy pe><xs:cho ice minOccurs=\"0\" maxOccurs=\"unbounded\"><x s:element name=\"Table1\"><xs:comple xType><xs: sequence>< xs:element name=\"Branch\" type=\"xs:string\" minOccurs=\"0\"/></xs:sequ ence></xs: complexTyp e></xs:ele ment></xs: choice></x s:complexT ype></xs:e lement></x s:schema>< diffgr:dif fgram xmlns:diffgr=\"urn:schemas -microsoft -com:xml-d iffgram-v1 \" xmlns:msdata=\"urn:schemas -microsoft -com:xml-m sdata\"><N ewDataSet xmlns=\"\"><Table1 diffgr:id=\"Table11\" msdata:rowOrder=\"0\"><Bra nch>Wholes ale Department</Branch></Table 1><Table1 diffgr:id=\"Table12\" msdata:rowOrder=\"1\"><Bra nch>Brisba ne Sales</Branch></Table1><Ta ble1 diffgr:id=\"Table13\" msdata:rowOrder=\"2\"><Bra nch>Mackay Sales</Branch></Table1><Ta ble1 diffgr:id=\"Table14\" msdata:rowOrder=\"3\"><Bra nch>Sydney Sales</Branch></Table1><Ta ble1 diffgr:id=\"Table15\" msdata:rowOrder=\"4\"><Bra nch>Melbou rne Sales</Branch></Table1><Ta ble1 diffgr:id=\"Table16\" msdata:rowOrder=\"5\"><Bra nch>Adelai de Sales</Branch></Table1><Ta ble1 diffgr:id=\"Table17\" msdata:rowOrder=\"6\"><Bra nch>AEA Head Office</Branch></Table1><T able1 diffgr:id=\"Table18\" msdata:rowOrder=\"7\"><Bra nch>Export Department</Branch></Table 1><Table1 diffgr:id=\"Table19\" msdata:rowOrder=\"8\"><Bra nch>All Sales Branches</Branch></Table1> <Table1 diffgr:id=\"Table110\" msdata:rowOrder=\"9\"><Bra nch>Brisba ne Northside</Branch></Table1 ><Table1 diffgr:id=\"Table111\" msdata:rowOrder=\"10\"><Br anch>Perth Sales</Branch></Table1><Ta ble1 diffgr:id=\"Table112\" msdata:rowOrder=\"11\"><Br anch>Rockh ampton Sales</Branch></Table1></N ewDataSet> </diffgr:d iffgram></ GetDataSet Result></G etDataSetR esponse>
My server code is:
public DataSet GetDataSet(string strSQL)
{
DataSet ds = new DataSet();
//populate ds here
return ds;
}
my contract is:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrappe
DataSet GetDataSet(string value);
my client code is:
HttpClient client = new HttpClient();
String url = System.Web.HttpUtility.Htm
HttpResponseMessage wcfResponse = client.GetAsync(url).Resul
HttpContent stream = wcfResponse.Content;
var data = stream.ReadAsStringAsync()
Reading data.Return.ToString() shows:
<GetDataSetResponse xmlns=\"http://tempuri.org/\"><GetDataSetResul
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.