Friday 11 July 2014

WCF Hosting Indonesia - JaringanHosting.com :: Membuat Layanan WCF dengan JSON Data dan Menggunakannya di iOS


Pada Postingan kali ini saya akan berbagi mengenai cara membuat layanan WCF dengan data JSON untuk dipakai pada iOS.

Pengantar

Layanan Web sangat penting bagi pengembangan mobile. Dalam tips kali ini, kita akan belajar untuk membuat layanan WCF yang mengembalikan data JSON. Kita juga akan belajar untuk menghasilkan permintaan untuk layanan ini di sisi iOS dalam artikel ini.

latar belakang

Saya berasumsi bahwa Anda sudah memiliki layanan WCF yang Anda buat. Jika Anda tidak atau +belum menciptakannya, buatlah yang baru "WCF Service Application ".


Menggunakan Kode

Pertama-tama, mari kita membuat operasi import yang diperlukan.

//Interface
Imports System.ServiceModel

//Implement
Imports System.Web.Script.Serialization
Imports System.ServiceModel.Activation
Imports System.ServiceModel
Imports System.ServiceModel.Web
  

Setelah ini, Anda harus mendefinisikan beberapa fungsi dan kelas di sisi antarmuka. 

Sebagai contoh:

<OperationContract()>
    <WebGet(UriTemplate:="GetUser", RequestFormat:=WebMessageFormat.Json, _
    ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped)> _
    Function GetUser() As List(Of Users)

<DataContract()>
    Class Users
        <DataMember>
        Public Property ID As Integer
        <DataMember>
        Public Property NAME As String
        <DataMember>
        Public Property SURNAME As String
    End Class
                                                                                        

Seperti yang Anda lihat, kita harus mengatur RequestFormat untuk JSON. Kita juga harus mengatur ResponseFormat untuk JSON.
Kemudian, kita perlu untuk mengimplementasikan fungsi ini.

Public Function GetUser() As List(Of IService1.Users) Implements IService1.GetUser
    Dim users As New List(Of IService1.Users)
    Dim user As New IService1.Users
    user.ID = 1
    user.NAME = "Melih"
    user.SURNAME = "Mucuk"
    users.Add(user)
    Return users
End Function

Kita telah menciptakan daftar dan mengembalikannya.
Dan Juga file Web.config harus diatur.

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="WcfService1.Service1" behaviorConfiguration="BehConfig">
        <endpoint address="" binding="webHttpBinding"
                contract="WcfService1.IService1" behaviorConfiguration="web">
        </endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="BehConfig">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>


Hanya Itu saja. Layanan WCF siap. Mari kita lihat bagaimana untuk menghasilkan permintaan untuk layanan ini di sisi iOS.

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *request = [NSString stringWithFormat:
                                @"http://localhost:portnumber/Service1.svc/GetUser"];
    NSURL *URL = [NSURL URLWithString:
                [request stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSError *error = nil;
    NSData *data = [NSData dataWithContentsOfURL:URL options:NSDataReadingUncached
error:&error];
    if(!error)
    {
        NSDictionary *json = [NSJSONSerialization
                              JSONObjectWithData:data
                              options:NSJSONReadingMutableContainers
                              error:&error];
        NSMutableArray *array= [json objectForKey:@"GetUserResult"];
        for(int i=0; i< array.count; i++)
        {
            NSDictionary *userInfo= [array objectAtIndex:i];
            NSInteger *id = [userInfo objectForKey:@"ID"];
            NSString *name = [userInfo objectForKey:@"NAME"];
            NSString *surname = [userInfo objectForKey:@"SURNAME"];
            NSLog(@"ID: %d NAME: %@ SURNAME: %@", id,name,surname);
        }
    }
}


Semuanya selesai, hanya tinggal dijalankan saja.

Yang perlu diperhartikan!

Untuk UriTemplate

RequestFormat:=WebMessageFormat.Json, ResponseFormat:=WebMessageFormat.Json // For Json

untuk Web.config:

service name="WcfService1.Service1" // Application_Name.Implement_Class

bagian contract
contract="WcfService1.IService1" //Application_Name.Interface_Class

bagian binding
binding="webHttpBinding" // for  web request


0 comments:

Post a Comment