продължение на http://mehmedov-web.blogspot.com/2013/02/service-net-delphi.html
В този урок продължаваме с писането не service на .net и използването му в Delphi
с разликата, че този път е web service.
Създаваме си един метод GetData, който връща обекти от тип user, като ги конвертира в JSON - връщаме на клиента string от JSON обекти.
Клиента може да се напише метод който да парсва JSON тук показвам как се транспортва колекция от обекти (user)
1. Създайте нов проект в .NET изберете WCF service library.
2.Добавете следния код в IService1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace Test
{
[ServiceContract]
public interface IService1
{
[OperationContract] string GetData(); }
}
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace Test
{
[ServiceContract]
public interface IService1
{
[OperationContract] string GetData(); }
}
3.Създайте нов class user.cs и добавете следния код в него.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
public class user
{
public string username { get; set; }
public string phone { get; set; }
public user()
{
}
}
}
4.Добавете следния код в Service1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Newtonsoft.Json;
using System.Xml.Serialization;
namespace Test
{
public class Service1 : IService1
{
public string GetData()
{
user u = new user();
u.username = "Michael";
u.phone = "8977xxxxxx";
List<user> users = new List<user>();
users.Add(u);
users.Add(u);
users.Add(u);
users.Add(u);
string myJson = JsonConvert.SerializeObject(users, Formatting.Indented);
return myJson;
}
}
}
8.Компилирайте
9. Изберете F5 ще ви се покаже следния диалог от него копирайте
endpoint addres = http://localhost:8733/Design_Time_Addresses/Test/Service1
това е вашия service адрес който ще ни трябва за delphi проекта.Използване на .net web service Delphi
1.Създайте нов проект на delphi примерно HelloWorld.
2. Изберете File - New - Other - webServices - WSDL IMPORTER
3.Изберете ОК и в следващата форма в поле location of WSDL or URL
добавете вашия service url http://localhost:8733/Design_Time_Addresses/Test/Service1/?wsdl
4.Избирайте Next докато Finish бутона ви стане активен.
5.Delphi ще ви генерира service1.pas файл който е трябва да добавите в code behind на вашата форма
6.Добавете нов бутон във вашата форма и кликнете два пъти на него.
7.Добавете следния код
трябва да добавите HelloWorld_TLB в uses
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, HelloWorld_TLB, Service1, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Service1: IService1;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// стартираме service
Service1 := GetIService1();
ShowMessage(Service1.GetData);
end;
Поздравление вие имате .net Service работещ на delphi application
Поздрави Мехмедов!




