Wednesday, April 17, 2013

Как да си напишем .net web Service и да го ползваме в Delphi 2-ра част

Как да си напишем .net web Service и да го ползваме в Delphi

продължение на 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(); }
}



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

Поздрави Мехмедов!


No comments:

Post a Comment