2010-06-17 6 views
1

컨트롤러에서 웹 서비스를 호출해야하는 asp.net MVC2 응용 프로그램이 있습니다. 어떻게해야합니까? Json 데이터를 반환하는 RESTful 서비스입니다.컨트롤러에서 웹 서비스를 호출하는 방법?

나는 좋은 예제를 찾는 것 같습니다.

감사

+1

을하는 데 도움이 당신 제공자에게

희망을 인스턴스화 할 때 사용 가치가있을 수 있습니다 일반 서비스 참조 추가? – JustLoren

답변

3

당신은 그것을 전혀 MVC에 연결되어 있지 않은, 어떤 ASP.net 응용 프로그램에서 할 것 같은 방법을 호출합니다.

중 하나에 대한 참조를 추가하고 그것을 사용 (쉬운) 또는 수동 방법으로 이동합니다 여기에 가이드가, 끝으로에 볼이 걸리는 등의 서비스를 위해 (그림 특히 14.) : http://msdn.microsoft.com/en-us/magazine/dd943053.aspx

1

I URL로부터 웹 요청을하는 "클라이언트"역할을하는 간단한 클래스를 조합 한 다음 응답을 문자열로 반환합니다.

거기에서 WCF와 함께 제공되는 JSON 직렬화 또는 가장 우수한 JSON.Net 라이브러리를 사용하여 JSON 데이터를 역 직렬화 할 수 있습니다. 기대하는 JSON 데이터와 동일한 방식으로 구조화 된 간단한 데이터 클래스를 만들어야합니다.

둘을 결합하여 클라이언트 클래스에서 역 직렬화 된 개체를 직접 반환 할 수도 있습니다.

2

소비자가 http 제공자와 serialization 제공자를 지정할 수있게 해주는 자신의 ActictiveResource 클라이언트 프레임 워크를 작성했습니다. 일반적인 activeResource 클래스는 cunstruction에서 전달 된 지정된 리소스 URL에 대해 호출하는 메서드로 네 개의 주요 동사 (get, put, post, delete)를 갖습니다. 당신은 또한 개체에 다른 동사를 사용할 수 있습니다 물론

ActiveResource<Product> arProduct = new ActiveResource<Product>(jsoSerializer,liveHttpProv,"https://company/product/1452"); 

//Get verb 
Product prod = arProduct.Get(); 

넣어, 포스트 및 삭제하려면 fololwing는 TEH 서비스에서 제품 항목을 가져 오는 예입니다.

arProduct.Post(prod); 

코드는 기본적으로 넣어 기본 HTTP 게시, 기능을 얻을 수를 감싸고 개체에 대한 페이로드의 serialiasation을 담당한다. 그것은 내가 계속해서 반복해서 사용한 매우 유용한 구성 요소입니다. 쉽게 컨트롤러에서 호출 할 수있는 코드는, 당신이를 사용할 수없는 이유가있는 IOC 컨테이너를 (내가 목 eUnity 블록을 사용하고 있습니다)이

관련 문제