-1
C#에서 webservice 호출을해야하며 모든 요청에 대해 사용자 정의 HTTP 헤더를 보내야합니다. 어떻게해야합니까?webservice 호출로 사용자 정의 HTTP 헤더
감사
C#에서 webservice 호출을해야하며 모든 요청에 대해 사용자 정의 HTTP 헤더를 보내야합니다. 어떻게해야합니까?webservice 호출로 사용자 정의 HTTP 헤더
감사
IClientMessageInspector를 구현하는 클래스를 만듭니다. BeforeSendRequest 메서드에서 사용자 지정 헤더를 보내는 메시지에 추가하십시오.
public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel)
{
HttpRequestMessageProperty httpRequestMessage;
object httpRequestMessageObject;
if (request.Properties.TryGetValue(HttpRequestMessageProperty.Name, out httpRequestMessageObject))
{
httpRequestMessage = httpRequestMessageObject as HttpRequestMessageProperty;
if (string.IsNullOrEmpty(httpRequestMessage.Headers[USER_AGENT_HTTP_HEADER]))
{
httpRequestMessage.Headers[USER_AGENT_HTTP_HEADER] = this.m_userAgent;
}
}
else
{
httpRequestMessage = new HttpRequestMessageProperty();
httpRequestMessage.Headers.Add(USER_AGENT_HTTP_HEADER, this.m_userAgent);
request.Properties.Add(HttpRequestMessageProperty.Name, httpRequestMessage);
}
return null;
}
그런 다음 메시지 관리자를 클라이언트 런타임에 적용하는 끝점 동작을 만듭니다. 비헤이비어를 속성으로 적용하거나 비헤이비어 확장 요소를 사용하여 적용 할 수 있습니다.
여기에 모든 요청 메시지에 HTTP 사용자 에이전트 헤더를 추가하는 방법에 대한 example입니다. 나는 이것을 내 고객 몇 명에게 사용하고있다. 의심의 여지없이 어떤 헤더에 대해서도 비슷한 것을 할 수 있습니다. IDispatchMessageInspector을 구현하여 서비스 측면에서도 동일한 작업을 수행 할 수 있습니다.
당신이 염두에 두었던 것이 이것입니까?