IOS中使用ASIHTTPRequest調用WCF服務

1 篇文章 0 订阅

最近開始接觸ios項目的開發。之前使用本地數據庫做的是offline的project。現在開始嘗試去從其他平台上拿數據。ios project是基於mac系統上的。但需要去調用windows系統上的服務。微軟有一個不錯的框架wcf.

話不多說,直接看代碼吧!

首先是wcf服務。


數據交換實體

/// <summary>

/// Customer實體類

/// </summary>

[DataContract]

public class

{

[DataMember(Order = 0)]

public string Name { get; set; }


[DataMember(Order = 1)]

public string DayOfResiger { get; set; }

}


服務契約

[ServiceContract]

  public interface Iservice1

{

/// <summary>

/// 创建客戶

     /// </summary>

[OperationContract]

[WebGet(UriTemplate = "Customer/{name}",ResponseFormate = webMessageFormat.Json)]

Customer GetCustomer(string name);


[OperationContract]

[WebGet(UriTemplate = "CustomerXML/{name}",ResponseFormat = WebMessageFormat.Xml)]

        Customer GetCustomerXml(string name);


[OperateionContrat]

[WebInvoke {UriTemplate = "Customer/ {name/{dayofresiger}",Method = "POST",ResponseFormat = WebMessageFormat.Json}]

Customer CreateCustomer(string name,string dayofresiger);


}


  服務實現

  1. public class Service1 : IService1  
  2. {  
  3.     public Customer GetCustomer(string name)  
  4.     {  
  5.         return new Customer { Name = name, DayOfResiger = new DateTime(2006, 10, 23).ToString() };  
  6.     }  
  7.     public Customer GetCustomerXML(string name)  
  8.     {  
  9.         return new Customer { Name = name, DayOfResiger = new DateTime(2006, 10, 23).ToString() };  
  10.     }  
  11.     public Customer CreateCustomer(string name, string dayOfResiger)  
  12.     {  
  13.         return new Customer { Name = name, DayOfResiger = dayOfResiger };  
  14.     }  

在web.config中将绑定方式改成webHttpBinding


服務器上發佈服務(iis)


接下來ios端


使用ASIHTTPRequest,是直接在CFNetwork上做的开源项目,提供了一个很方便更强大的HTTP网络传输的封装。


定义下面三个方法對應三个button的点击事件:


 
 
  1. - (IBAction)fetXML:(id)sender;  
  2. - (IBAction)fetJson:(id)sender;  
  3. - (IBAction)createJson:(id)sender;
 
具體實現
  1. - (IBAction)fetXML:(id)sender  
  2. {  
  3.     NSURL *url = [NSURL URLWithString:@"http://192.168.112.220:2194/Service1.svc/CustomerXML/Koson"];  
  4.     ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];  
  5.     [request startSynchronous];  
  6.     NSError *error = [request error];  
  7.     if (!error) {  
  8.         NSString *response = [request responseString];  
  9.         UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"xml格式" 
  10.                                                             message:response  
  11.                                                            delegate:nil  
  12.                                                   cancelButtonTitle:@"OK" 
  13.                                                   otherButtonTitles:nil];  
  14.         [alertView show];  
  15.         [alertView release];  
  16.     }  
  17.     }  
  18. - (IBAction)fetJson:(id)sender  
  19. {  
  20.     NSURL *url = [NSURL URLWithString:@"http://192.168.112.220:2194/Service1.svc/Customer/Koson"];  
  21.     ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];  
  22.     [request startSynchronous];  
  23.     NSError *error = [request error];  
  24.     if (!error) {  
  25.         NSString *response = [request responseString];  
  26.         UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"json格式" 
  27.                                                             message:response  
  28.                                                            delegate:nil  
  29.                                                   cancelButtonTitle:@"OK" 
  30.                                                   otherButtonTitles:nil];  
  31.         [alertView show];  
  32.         [alertView release];  
  33.     }  
  34. }  

  

 
 
  1. - (IBAction)createJson:(id)sender  
  2. {  
  3.     NSURL *url = [NSURL URLWithString:@"http://192.168.112.220:2194/Service1.svc/Customer/Koson/2006-09-20"];  
  4.     ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];  
  5.     [request setRequestMethod:@"POST"];  
  6.     [request startSynchronous];  
  7.     NSError *error = [request error];  
  8.     if (!error) {  
  9.         NSString *response = [request responseString];  
  10.         UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"创建k客戶" 
  11.                                                             message:response  
  12.                                                            delegate:nil  
  13.                                                   cancelButtonTitle:@"OK" 
  14.                                                   otherButtonTitles:nil];   
  15.        [alertView show];  
  16.         [alertView release];  
  17.     }  





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值