[WebMethod]
public WebServiceResponse CallService(string name,
string url,
string method,
string contentType,
string postData) {
WebServiceResponse result = new WebServiceResponse();
try{
//Convert the post data into a byte array
//The post data is a string like "username=EGS&password=305"
byte[] data = null;
if (!string.IsNullOrEmpty(postData))
data = Encoding.UTF8.GetBytes(postData);
//Create the request and write the post data to it if any
WebRequest request = WebRequest.Create(url);
if (!string.IsNullOrEmpty(method))
request.Method = method;
if (!string.IsNullOrEmpty(contentType))
request.ContentType = contentType;
if (data != null) {
request.ContentLength = (long)data.Length;
using (Stream stream = request.GetRequestStream())
stream.Write(data, 0, data.Length);
}
else
request.ContentLength = 0L;
//Get the response from the web service
using (WebResponse response = request.GetResponse())
using (StreamReader reader =
new StreamReader(response.GetResponseStream())) {
result.StatusCode =
(int)(response as HttpWebResponse).StatusCode;
result.StatusDescription =
(response as HttpWebResponse).StatusDescription;
result.Content = reader.ReadToEnd();
}
}
catch (Exception ex) {
result.Error = "Error: [DashboardService.CallService] " + ex.Message;
}
return result;
}
WebServiceResponse is a custom class with the properties StatusCode, StatusDescription, Content and Error.
02 December 2011
C# - Calling a web service with GET or POST
For a dashboard I needed to connect to a Google web service and retrieve data from it. I was working in Silverlight, but Silverlights security model did not allow me to call Googles web service, so I called from an ASP.NET web service as follows:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment