2011-12-23 1 views
1

json을 사용하여 WCF 서비스를 사용하는 인터넷에서 다양한 예를 보았지만 iOS를 사용하여 소비하는 완전한 예는 보지 못했지만 iOS를 사용하는 wcf 서비스에 대한 간단한 json 호출.요청/응답을 위해 Json을 사용하고 소비하는 WCF 서비스 메소드

NSArray *keys = [NSArray arrayWithObjects:@"referenceName", nil]; 
NSArray *objects = [NSArray arrayWithObjects:@"test", nil]; 
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 

NSData *jsonData = nil; 
NSString *jsonString = nil; 

if([NSJSONSerialization isValidJSONObject:jsonDictionary]) 
{ 
    jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:0 error:nil]; 
    jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", jsonString); 
} 

NSURL *url = [NSURL URLWithString:@"http://test.com/Service.TestService.svc"];  
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request setValue:@"application/json" forHTTPHeaderField:@"Content-type"]; 
[request setValue:jsonString forHTTPHeaderField:@"json"]; 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:jsonData]; 

NSError *errorReturned = nil; 
NSURLResponse *theResponse =[[NSURLResponse alloc]init]; 
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&errorReturned]; 
if (errorReturned) { 

} 
else { 
    NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

    NSLog(@"%@", response); 
} 
:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
[ServiceBehaviorAttribute(IncludeExceptionDetailInFaults = true)] 

내가 함께 아이폰 OS에서 검색을 시도 : 나는 또한 이러한 특성이 내 클래스 구현에

[ServiceContract(Namespace = "")] 
[DataContractFormat(Style = OperationFormatStyle.Document)]  
public interface IService 
{ 
    [OperationContract] 
    [WebInvoke(Method = "POST", 
     BodyStyle = WebMessageBodyStyle.WrappedRequest, 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "referenceData")] 
    string GetReferenceData(string referenceName); 
} 

:

나는 WCF에서 서비스 인터페이스가

누군가 올바른 방향으로 나를 가리킬 수 있습니까? WCF Test Client를 사용하여 서비스를 테스트 할 때 json 응답을 얻었지만 iOS 코드에서 호출을 실행하면 오류가 발생하지 않고 응답이 비어 있습니다.

+0

위의 iOS 요청 생성 기능이 WCF 서비스에서 작동합니다. –

답변

1

귀하는 iOS의 요청을 Fiddler으로 검사하고 WCF 테스트 클라이언트의 요청과 비교할 것을 제안합니다.

관련 문제