2014-11-07 3 views
1

문제점 : Windows Phone 7.1 응용 프로그램에서 ASMX 서비스로 사용자 정의 HTTP 헤더를 보내려고합니다. ASMX 서비스는 다른 팀에 의해 개발되었습니다. 질문의 수이 순에 & 답이있다,하지만 아무것도 우리의 경우 제대로 작동하지 :Windows Phone에서 ASMX 서비스로 사용자 정의 HTTP 헤더 전달

솔루션했습니다.

참고 HttpRequestMessageProperty, 및 this.

클라이언트 측 코드 :

HttpRequestMessageProperty httpProps = new HttpRequestMessageProperty(); 
httpProps.SuppressEntityBody = false; 
httpProps.Headers["HeaderKey"] = "HeaderValue"; 
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpProps; 

서비스 측면 코드 :

public string GetHeaderValue() 
{ 
    var properties = OperationContext.Current.IncomingMessageProperties; 
    var property = properties[HttpRequestMessageProperty.Name] as HttpRequestMessageProperty; 
    string headerValue = property.Headers["HeaderKey"]; 
    return headerValue; 
} 

은 "HeaderKey"값이 서비스 측에서 사용할 수 없습니다. 어느 누구도 올바른 방향으로 우리를 지적 할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다.

감사합니다.

+0

"X-"접두사가 붙은 머리글 키를 사용해 보셨습니까? (예 : httpProps.Headers [ "X-HeaderKey"] = "HeaderValue") – user623396

+0

아니요, 시도하지 않았습니다. 저도 확인하겠습니다. X- 접두사가있는 키는 어떻게 인식됩니까? – DareToExplore

+0

비표준 헤더 키는 "X-"로 시작해야한다고 명시한 명명 규칙입니다. – user623396

답변

0
좋아

, 그래서 일부 안타 미스 후, 아래의 코드 일 :

HttpContext.Current.Request.Headers.GetValues("HeaderKey")[0]; 

OperationContext는 ASMX OperationContext.Current 위해이었다 사용에 문제가 null이었다. WCF 서비스에서는 OperationContext.Current를 사용할 수 있습니다.

감사합니다. @ user623396 시간과 노력이 필요합니다. 희망이 사람을 도와줍니다.

+0

이것이 문제를 해결하는 데 도움이 되었기 때문에 답변으로 표시했습니다. 다른 사람의 문제가 해결되기를 바랍니다. – DareToExplore