2011-08-22 3 views
1

내 응용 프로그램에는 클라이언트와 WCf REST 서비스가 있습니다. 일부 wcf 서비스를 호출하기 위해 서비스가 GET인데도 클라이언트는 http POST를 수행합니다.IIS URL 다시 쓰기 - POST를 GET으로 변환

나는 클라이언트 나 서비스를 변경하고 싶지 않습니다.

그래서이 POST 요청을 GET으로 변환하고 POST로 들어오는 데이터를 URL에 추가하고 REST 서비스를 호출하는 방법이 있습니다.

미리 감사드립니다.

답변

1

URL 재 작성을 사용하여 GET 메서드를 사용하는 3xx 리디렉션을 실행할 수 있지만 모든 POST 데이터가 손실됩니다. 나에게 알려진

유일한 안전한 방법은 일부 재 작성 POST 요청에 당신이 다른 사용자 정의 페이지입니다 :

  • 모든 POST 데이터/변수를 수집;
  • 을 GET 변수로 변환합니다 (적절한 GET 요청을 어셈블합니다).
  • 문제 301 (또는 302) 올바른 URL로 리디렉션합니다 (모든 POST 데이터가 GET 변수로 전송됩니다).

사용자 정의 페이지로 다시 작성하는 것은 쉽습니다. 어떤 방법이 사용되었는지 (POST 또는 GET) 확인하고 POST에서만 호출해야합니다. 나머지는 post-to-get 스크립트에서 처리됩니다.

이 모든 복잡성의 이유는 POST와 GET 요청이 작동하는 방식의 차이입니다. GET을 사용하면 POST가 요청 본문을 사용하여 변수의 데이터를 전송하는 동안 모든 데이터가 URL의 일부로 전송됩니다.

+0

어쨌든 Custom HttpHandlers를 사용하여이 작업을 수행합니까? – Sidharth

+0

아마 - 불행히도 나는 그 방향으로 이것에 관해 당신에게 조언하는 .NET 사람이 아닙니다. – LazyOne