문제

우리의 애플리케이션 비즈니스 계층을 REST 웹 서비스 컬렉션으로 옮기고 싶습니다.그러나 대부분의 인트라넷은 Classic ASP를 사용하여 구축되었으며 제가 일하는 대부분의 개발자는 계속 Classic ASP에서 프로그래밍합니다.이상적으로는 고유한 웹 API 집합의 이점을 활용하려면 기본 ASP 페이지에서 호출해야 합니다.

나는 그것을 어떻게 해야 할지 전혀 모른다.

도움이 되었습니까?

해결책

클라이언트에서 REST 서비스를 사용하기 위해 JQuery와 JSON 호출의 조합을 사용할 수 있습니다.

또는

ASP 계층에서 REST 서비스와 상호 작용해야 하는 경우 사용할 수 있습니다.

MSXML2.ServerXMLHTTP

좋다:

Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "GET", "Rest_URI", False
HttpReq.send

다른 팁

@KP

실제로 사용해야합니다 MSXML2.ServerXMLHTTP ASP/서버 측 응용 프로그램에서. XMLHTTP 서버/서비스 앱에서 사용이 지원되지 않는 WinInet을 사용하므로 클라이언트 측에서만 사용해야 합니다.

보다 http://support.microsoft.com/kb/290761, 질문 3, 4, 5 및

http://support.microsoft.com/kb/238425/.

이것은 매우 중요합니다. 그렇지 않으면 웹 앱이 중단되고 온갖 이상한 말도 안되는 일이 발생하는 것을 경험하게 될 것입니다.

다음은 클래스 ASP 페이지에서 웹 서비스를 호출하는 방법을 설명하는 몇 가지 기사입니다.

여기에 제시된 많은 답변은 ClassicASP를 사용하여 웹 서비스 및 REST 호출을 사용하는 방법을 다루는 것으로 보입니다.

제 생각에는 ClassicASP가 REST 형식으로 데이터를 제공하는 것이 더 깔끔한 솔루션일 수 있습니다.가능하다면 브라우저 기반 클라이언트 코드에서 '매시업'을 처리하도록 하세요.다른 ASP 구성 요소를 통합하지 않고도 이 작업을 수행할 수 있어야 합니다.

따라서 ClassicASP에서 반짝이는 새로운 REST 지원을 모형화하는 방법은 다음과 같습니다.

  1. 랜딩 패드 역할을 하는 단일 ASP 웹 페이지 제공
  2. 랜딩 패드는 두 가지 매개변수를 처리합니다.동사, URL, 양식 콘텐츠 세트
  3. 일종의 스위치 블록을 사용하여 URL을 검사하고 동사(및 양식 내용)를 관련 처리기로 보냅니다.
  4. 그런 다음 핸들러는 양식 내용과 함께 동사(PUT/POST/GET/DELETE)를 처리하여 성공/실패 코드와 적절한 데이터를 반환합니다.
  5. 랜딩 패드는 성공/실패 코드를 검사하고 해당 HTTP 상태와 반환된 데이터를 반환합니다.

양식 데이터를 JSON에서 디코딩/인코딩하는 지원 클래스를 사용하면 클라이언트 측 구현이 쉬워지고 잠재적으로 전달되는 데이터의 양이 간소화되므로 이점을 누릴 수 있습니다.여기에서 대화를 참조하세요. Classic ASP에서 JSON을 구문 분석하기 위한 좋은 라이브러리가 있습니까?

마지막으로 클라이언트 측에서 동사, URL 및 데이터 페이로드를 사용하는 메서드를 제공합니다.단기적으로 이 방법은 매개변수를 대조하여 랜딩 패드로 전달합니다.장기적으로(클래식 ASP에서 전환하면) 귀하의 방법은 데이터를 '실제' URL로 보낼 수 있습니다.

행운을 빌어요...

또 다른 가능한 해결책은 호출을 수행하고 결과를 반환하는 .NET DLL을 작성하는 것입니다(RESTSharp와 같은 것을 래핑하여 필요에 맞게 사용자 정의된 간단한 API를 제공할 수도 있음).그런 다음 DLL을 COM DLL로 등록하고 CreateObject 메서드를 통해 ASP 코드에서 이를 사용합니다.

서명된 JWT 생성, 비밀번호 솔팅 및 해싱과 같은 작업을 위해 이 작업을 수행했습니다.그것은 훌륭하게 작동합니다(ASP를 다시 작성하기 위해 미친 듯이 일하는 동안).

필요한 것은 HTTP 클라이언트뿐입니다..Net에서는 WebRequest가 잘 작동합니다.클래식 ASP의 경우 다음과 같은 특정 구성 요소가 필요합니다. 이 하나.

또 다른 가능성은 WinHttp COM 개체를 사용하는 것입니다. WinHttpRequest COM 개체 사용.

WinHttp는 서버 코드에서 사용되도록 설계되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top