C#代码中的REST风格的Web服务
答
请使用下面的代码来调用RESTful Web服务。
string responseMessage;
HttpClient client = new HttpClient(serviceUrl);
HttpWebRequest request = WebRequest.Create(string.Concat(serviceUrl, resourceUrl)) as HttpWebRequest;
request.ContentType = "text/xml";
request.Method = method;
HttpContent objContent = HttpContentExtensions.CreateDataContract(requestBody);
if(method == "POST" && requestBody != null)
{
//byte[] requestBodyBytes = ToByteArrayUsingXmlSer(requestBody, "http://schemas.datacontract.org/2004/07/XMLService");
byte[] requestBodyBytes = ToByteArrayUsingDataContractSer(requestBody);
request.ContentLength = requestBodyBytes.Length;
using (Stream postStream = request.GetRequestStream())
postStream.Write(requestBodyBytes, 0, requestBodyBytes.Length);
//request.Timeout = 60000;
}
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
if(response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
responseMessage = reader.ReadToEnd();
}
else
{
responseMessage = response.StatusDescription;
}
上面的代码需要参考下面的命名空间:
使用Microsoft.Http; - >可从REST入门工具包(Microsoft.Http.dll)获得
using System.Net;
using System.IO;
http://developer.yahoo.com/dotnet/howto-rest_cs.html – 2010-02-23 11:50:20