2010-07-25 4 views
0

XML로 래핑 된 데이터가 필요한 WebGet 및 WebInvoke를 사용하여 WCF 서비스를 공개했습니다. XML에 래핑되지 않은 원시 데이터를 반환 할 수 있고 클라이언트가 XML로 요청을 래핑 할 필요없이 내 서비스를 호출 할 수있는 기능을 제공 할 수 있습니다.WebGet 및 WebInvoke 용 WCF RequestFormat

내가 프로토콜 버퍼를 사용하여 데이터를 직렬화하고 base64String에 결과를 변환하고있어이 때문에 WebGet이 응답 같이 보인다 :

<BinVehicleResp xmlns="http://schemas.datacontract.org/2004/07/NTouchServices.Binary_Types" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <BinVehicle>CgsxMjMtNDU2LTc4ORIFNDQwMDAaBUJsYWNrIgVKZXR0YVIJCJrYqoXAShAE (BINARY DATA)</BinVehicle> 
</BinVehicleResp> 

그리고 WebInvoke의 입력과 같은 최소 봐야한다 :

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> BINARY DATA </string> 

저는 WebInvoke의 경우 특히 이진 데이터 부분 만 원합니다. 나는 그것이 어떻게 WebGet과 함께 살 수있다. 누구든지 XML 요청을 랩 할 필요없이 WebInvoke를 사용하여 HTTP POST를 수행 할 수 있도록 클라이언트를 허용 할 수있는 제안이 있습니까? 감사.

+0

코드 또는 XML을 게시하는 경우 ** 텍스트 편집기에서 해당 행을 강조 표시하고 편집기 툴바에서 "코드"버튼 (101 010)을 클릭하여 멋지게 형식을 지정하고 구문을 강조 표시하십시오! –

답변

0

나는이 질문을 완전히 이해하고 있는지 잘 모르겠다. 게시 된 데이터가 XML로 래핑되도록 요구하지만 XML로 래핑하지 않고 데이터를 POSTED하는 방법을 묻습니다. 나의 초기 대답은 BodyStyle 매개 변수를 사용하여 WebInvoke 서비스 메소드를 선언하는 것입니다 :

[OperationContract] 
[WebInvoke(Uri="SomeMethod?x={foo}&y={bar}", BodyStyle=WebMessageBodyStyle.WrappedRequest)] 
public string SomeMethod(string foo, string bar) { 
... 
} 

여기 BodyStyle에 대한 MSDN 문서의를 - 당신이 그것을 베어 (도 응답도 요청이 감싸)로 설정할 수 있습니다, 포장, 또는 래핑 된 요청/응답.

이 정보가 도움이되기를 바랍니다.

+0

이것은 유망 해 보입니다. 시도해 보겠습니다. 죄송합니다. 혼란스러워하는 질문입니다. 내가 실제로 의미했던 것은 WCF가 요청 및 응답을 래핑 할 것을 요구하는 방식으로 성공하기 위해서 였지만, 개인적으로 응답을 포장하지 않기를 바란다. – Sean

+0

문제 없습니다. 그게 효과가 있다면 알려주세요 - 나는 호기심이 많습니다. 감사! –

관련 문제