Web servislerini projelerimize eklerken servislerin adreslerini Visual Studionun web servisi ile ilgili tool’una yazarak ilgili web servisini referans olarak projelerimize ekleyebiliyoruz. Fakat proje ilerleyişinde bazen durumlar istediğimiz doğrultuda gelişmeyebiliyor. Örneğin web servisinin bulunduğu sunucuya erişim sadece projenin production sunucusundan yapılıyor. Bu durumda Visual Studio web servis toolunu kullanarak bu servisi projemize dahil edemiyoruz. Fakat bu servislere SOAP paketleri halinde, çalışma anında WebRequest sınıfını kullanarak projemizden ulaşabiliriz.
Bunun için küçük bir örnek üzerinden , yazmış olduğumuz bir servise httpRequest nesnesi ile nasıl erişebileceğimizi anlatmaya çalışacağım.Örneğimize servisimizi oluşturarak başlayabiliriz.
MessageService.asmx dosyamız aşağıdaki gibi string mesaj döndüren bir web metoda sahip olmalıdır.
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class MessageService : System.Web.Services.WebService
{
[WebMethod]
public string TestMessage(string message)
{
return "your message is:'"+message+"'";
}
}
Web servisimiz Http request nesnesi ile çağıracağımız sayfamızda aşağıdaki gibi bir yapıya sahip olmalıdır.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebServiceWithHttpRequest._Default" %>
