2010-11-23 4 views
1

주어진 네트워크의 프린터에 대한 정보를 확인하는 C++ 응용 프로그램이 있습니다. 다른 .net 웹 응용 프로그램에서 웹 서비스를 사용하여이 정보를 데이터베이스에 저장해야합니다. 하지만 나는 C++을 처음 접했고 C++을 사용하는 webservice에서 webmethod에 대한 호출을 어떻게 만들 수 있는지 전혀 모른다. C++ 응용 프로그램에는 웹 참조 추가 옵션이 없습니다.C++ 응용 프로그램에서 .net webservice를 사용하는 방법은 무엇입니까?

아무에게도 나에게 좋은 자습서를 제안 할 수 있습니까? 내 응용 프로그램이 Win32 콘솔 응용 프로그램입니다.

감사합니다, Subrat

답변

1

당신은 웹 서비스에 연결하기 위해 아파치에서 Axis를 사용할 수 있습니다.

2

Walkthrough: Accessing an XML Web Service Using C++ and the CLR이라는 Visual Studio 2005를 사용하는 MSDN 문서는 Visual Studio 2008 C++와 비슷해야합니다.

+0

확실하지 않지만 Subrat는 CLR C++을 사용하고 있습니까? –

+0

나는 그렇지 않습니다. 그것의 win32 콘솔 응용 프로그램. – sid

0

Windows를 암시하기 때문에 WinInet (msdn에서 찾습니다)을 볼 수 있습니다. WinInet은 매우 강력하고 기능이 풍부한 HTTP 클라이언트이지만 특히 비동기 모드에서 사용하기가 복잡합니다.

0

클라이언트와 서버간에 교환되는 SOAP 메시지는 기본적으로 XML 문서이며 HTTP를 통해 전송됩니다 (HTTP 메시지 본문에 있음). SOAP 요청 및 응답의 형식을 알고있는 경우 WinHttp API 또는 더 일반적인 WinINet을 사용할 수 있습니다. 또 다른 해결책은 IXMLHTTPRequest입니다. 아마도 MSXML을 사용하여 직접 XML을 파싱 할 준비를하십시오.

ATL 서버는 VS2008에서 사용할 수 없습니다 (이 기술은 community project으로 릴리스됨에 따라 Microsoft는이 기술을 얼마나 지원할 것인지 잘 모릅니다).

Apache Axis2/C 웹 서비스에 액세스하기 위해 WinCE에서 WinINet을 사용했습니다.

+0

Wininet에 대한 샘플 자습서가 있습니까? 내가 사용하는 webservice 문자열 배열을 반환합니다. WinINet을 사용하여 이것을 얻을 수 있습니까? – sid

+0

MSDN에는이 페이지에서 시작하는 WinINet에 관한 기사가 있습니다. http://msdn.microsoft.com/en-us/library/aa385331(v=VS.85).aspx. SOAP 응답 본문의 형식을 아는 경우이를 구문 분석하고 웹 메서드 (사용자의 경우 문자열 세트)에서 반환 한 데이터를 추출 할 수 있습니다. WireShark 또는 Fiddler를 사용하여 SOAP 메시지의 구조를 볼 수 있습니다. –

0

웹 서비스에 액세스하기위한 훌륭한 오픈 소스, C/C++ 라이브러리 인 gSoap을 살펴보십시오. 나는 이것을 닷넷으로 작성된 서비스에 접근하는데 광범위하게 사용 해왔다. 상업 및 비영리 라이센스를 사용할 수 있습니다.

wsdl 파일/url 만 있으면 클라이언트/서버 코드가 생성됩니다. 응용 프로그램을 개발하기 위해 두 개의 컴파일러 도구가 포함되어

gSOAP 배포 패키지 :

  1. 'wsdl2h'WSDL 파서 웹 사이트에서. 이 도구는 WSDL과 XSD 파일을 주석이 달린 C/C++ 정의로 변환합니다.

  2. 'soapcpp2'스터브와 스켈레톤 컴파일러. 이 도구는 RPC 코드 및 XML 직렬 변환기를 주석이있는 C/C++ 정의에서 생성합니다.

'wsdl2h'파서는 웹 서비스의 gSOAP 헤더 파일 사양으로 WSDL을 변환합니다. 이 사양은 서버의 기능에 대한 C/C++ 투명한 뷰를 제공합니다. 파일을 'soapcpp2'로 처리하여 소스 코드 스텁을 생성하고 스켈레톤을 사용하여 서비스를 호출하거나 WSDL을 기반으로 새 서비스를 빌드합니다.

관련 문제