wcf 메서드를 작동 시키려고 할 때 오류가 있습니다. 매개 변수 중 하나는 NSMutableArray이고 Object 유형은 TypeClass입니다. NSMutableArray로 모든 것을 검사했는데 모든 것이 잘된 것처럼 보입니다. 매개 변수에 대한objective-C의 객체를 비 직렬화하는 방법
내 코드는 다음과 같습니다 WCF에서
NSData *myPostData = [[NSString stringWithFormat:@"{\"parameter1\":\"%@\"}",mynsmutablearraylist] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *myMutablePostData = [NSMutableData dataWithData:myPostData];
매개 변수 유형은 목록 < TypeClass처럼>.
mynsmutablearraylist의 개체와 키 값을 볼 수 있습니다. 하지만 왜 작동하지 않는지 나는 이해할 수 없다.
이 wcf 메서드는 Win8 Metro 응용 프로그램에서 작동하지만 IOS에서는 작동하지 않습니다.
서버가 요청을 처리하는 중 오류가 발생했습니다. 예외 메시지는 ' 메시지를 비 직렬화하는 동안 포맷터가 예외를 throw했습니다. 매개 변수를 역 직렬화하려고 시도하는 동안 오류가 발생했습니다. http://tempuri.org/:typeclass. 의 InnerException 메시지 유형의 객체 System.Collections.Generic.List`1 [[ServiceOfMine.Entities.TypeClass, ServiceOfMine, 버전 = 1.0.0.0를 역 직렬화 오류가 발생했습니다 '입니다, 문화 = 중립, PublicKeyToken = 없는]]. 잘못된 문자 ' '이 (가) 발생했습니다. '. 자세한 내용은 InnerException을 참조하십시오. '. 자세한 내용은 서버 로그 을 참조하십시오. 예외 스택 추적은 다음과 같습니다
추가 정보 : 나는 정확히 같은 값으로 매개 변수를 테스트 할 때 잘 작동
. SOAPUI에서 요청의 일부 : 원래 질문의 @"{\"parameter1\":\"%@\"}"
형식 문자열에 기초
> >....
> > <tem: parameter4>parvalue</tem: parameter4>
> > < tem: typeclass>
> > <!--Zero or more repetitions:-->
> > <ser:TypeClass>
> >
> > <ser:drugId></ser:drugId>
> > <ser:drugname></ser:drugname>
> > </ser:TypeClass>
> > <ser:TypeClass>
> >
> > <ser:drugId></ser:drugId>
> > <ser:drugname></ser:drugname>
> > </ser:TypeClass>
> > </ tem: typeclass>
> > ...
예상되는 데이터의 형식과 실제로 보낸 내용을 알고 있습니까? – Wain
NSString 형식의 단어를 반환합니다. 예, 나는 그것들을 안다. 나는 그들을 디버그로 많이 점검했다. – user3065761
@ user3065761 : 그는 데이터의 * 유형 *을 말하지 않았으며 * 형식 *이라고 말했습니다. '[NSString stringWithFormat : @ "% @", someNSMutableArray]'를 실행하면 WCF가 기대하는 형식이 아닌 기본 NSArray 문자열 형식을 사용하게됩니다. 예를 들어, NSArray는'(apple, banana, "organic lemon")과 같은 문자열을 줄 수 있지만 WCF는'[ "apple", "banana", "organic lemon"과 같은 배열을 기대합니다. '. (실제로 WCF가 원하는 것을 알지는 못하지만 확실하게 여러 가지 방법으로 목록을 형식화 할 수 있음을 알 수 있습니다.) – Chuck