2011-03-14 2 views
6

HTTP GET 메소드를 사용하도록 설정된 ASMX 웹 서비스가 있습니다. 기본 String 및 Int 매개 변수를 사용하는 간단한 메서드는 정상적으로 작동하며 MyService.asmx/MethodName?Param=Value을 호출하고 XML로 응답을 반환 할 수 있습니다. 나는 널 (NULL) 지능 (즉 int?)가하는 방법이있을 때 그러나Null 가능 유형이있는 메소드가 GET을 사용하는 ASMX 웹 서비스에서 작동하지 않습니다.

,이 오류를 얻을 :

< 방법 이름> 웹 서비스 메소드 이름이 유효하지 않습니다.

오류 메시지는 메서드가 존재하므로 GET 범위에 포함되지 않으므로 혼란 스럽습니다. nullable 형식이 너무 복잡하여 URL을 통해 전달할 수 없기 때문에 이것을 가정합니다. 그러나 이에 대한 문서 나 게시물을 찾을 수 없습니다.

List 나 사용자 정의 클래스 등의 복잡한 유형은 GET을 사용하여 작동하지 않지만 단순한 nullable int 또는 nullable datetime은 기본적으로 URL에서 생략되었는지 여부를 감지하여 처리 할 수 ​​있다고 생각했습니다. 그것이 그렇게 단순하지 않다고 생각해라!

모든 조언이나 해결 방법을 크게 높이 실 것입니다.

감사합니다, 팀

답변

1

널 (NULL)의 INT가 너무 복잡하지 않습니다. WSDL로

<s:element minOccurs="1" maxOccurs="1" name="Param" nillable="true" type="s:int" /> 

을 생성해야합니다. this post을 확인하십시오. 그 오류는 아마도 뭔가 다른 것일 수 있습니다.

0

이러한 int가있는 경우 json 텍스트를 사용해야합니까? 왜냐하면 그것은 원시 타입이 아닌 객체 타입이기 때문입니다. 서비스가 존재하기 때문에 오류가 오해의 소지가 있습니다.

int가 있으면? a 매개 변수로 "{ 'a': null}"을 내용으로 서버 또는 null 대신 정수로 보내야합니다.