2011-12-23 3 views
0

편안하고 나는이 같은 게시물 내 방법을 만들어 :WCF 서비스는

[OperationContract] 
[WebInvoke(Method = "POST", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json, 
      BodyStyle = WebMessageBodyStyle.Bare)] 
List<Human> GetHuman(UserEnteredName humanName); 

UserEnteredName 클래스는 단지 하나의 속성이 있습니다 - 문자열입니다.

그리고 작동합니다. 그러나, 나는 그것을 게시 해야지 얻지 않아야합니다.

[WebInvoke(Method= "GET", UriTemplate = "GetHuman?username={John}", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 

을하지만 그것은 작동하지 않습니다

나는이 함께했습니다. 무엇을 바꾸어야합니까?

+1

오류 게시 ... "작동하지 않음"이란 무엇입니까? – andreapier

+0

@andreapier 오류는 500 내부 서버 오류입니다. –

+0

아마 기본 도메인이 아닌 도메인에서 일부 json을 얻으려고합니까? 즉, 기본 도메인이 www.mydomain.com이고 inner.mydomain.com에서 ajax 호출을하고 있습니까? – andreapier

답변

1

당신의 UriTemplate에 따르면, 당신의 방법은 당신이 실수로 UriTemplate에 가능한 매개 변수 값을 가하고 있습니다 의심

Human GetHuman(string John) 

처럼 보일해야합니다. GET를 들어, 약간 청소기입니다 WebGetAttribute를 사용할 수 있습니다, 또한

[WebInvoke(Method= "GET", UriTemplate = "GetHuman?username={userName}", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 
Human GetHuman(string userName) 

같은 것을보십시오.


은 내가 string 매개 변수를 사용하고 메소드 본문에 UserEnteredName 인스턴스를 생성하기 위해 방법을 변경합니다. TypeConverterAttribute을 사용하는 경우 매개 변수로 UserEnteredName 유형을 사용하는 것이 가능할 수 있습니다. 그러나이 방법을 사용한 적이 없으므로 얼마나 쉬운 지 (또는 아닌지) 말할 수는 없습니다. WCF Web HTTP Programming Model Overview, 특히 UriTemplate 쿼리 문자열 매개 변수 및 URL 섹션을 참조하십시오.

+0

시도했지만 작동하지 않았습니다. 내 방법은 다음과 같습니다. 목록 GetHuman (UserEnteredName humanName); 하지만 UserEnteredName은 문자열 속성 userName이 포함 된 클래스입니다. –

+0

@Scee, 내 편집을 참조하십시오. –

+0

나는 그것을 컴파일 할 수 있다는 것에 놀랐다. 어떻게 UserEnteredName 대신에 문자열을 전달할 수 있는가? 어쩌면 당신이 우리에게 간단한 예제를 썼을까요? 또는 GetHuman 메소드에 대한 래퍼를 시도해 볼 수 있습니다. 입력 매개 변수로 문자열을 사용합니다. – andreapier

관련 문제