ServiceReference 호출의 응답에서 헤더 값 (Set-Cookie) 가져 오기

dst3p

SOAP 웹 서비스 양식에서 API를 호출하고 응답을 받아야하는 프로젝트에서 작업 중입니다. 응답이 돌아 오면 헤더에서 가져 와서 후속 API 요청과 함께 헤더 쿠키 값을 전달해야하는 Set-Cookie 값이 있습니다. 처음에는 .NET을 사용하여 SOAP 문서를 처음부터 작성했습니다 XmlWriter. 내 팀원이 서비스 참조를 사용하도록하여 사용자 지정 XML (BIG WIN)을 작성할 필요가 없었습니다.

내 주요 문제는 헤더 값을 가져와야한다는 것입니다. 그렇지 않으면 API 호출이 작동하지 않습니다. 서비스 참조와 함께 제공되는 모든 장점을 사용할 수있는 동안 응답 헤더를 얻는 방법이 있습니까?

OBR_EXO

나는 이것을 알아 내려고 하루의 대부분을 보냈다 ... 나는 쿠키 설정을 시뮬레이션하고 그것을 OperationContract의 일부로 보내는 WCF 서비스를 작성하는 것을 끝냈다. (이것은 나쁜 습관이지만, 실제로는하지 않을 것이다. WCF는 HTTP 전용이 아니므로).

처음에는 Message Inspectors가 트릭을 수행 할 것이라고 생각했지만 몇 시간의 코드 반복 후에 사용자 지정 WebClient 클래스를 작성하여 서비스 참조를 "시뮬레이션"하여 CookieContainer의 헤더를 볼 수있었습니다.

그래서이 모든 다른 아이디어를 시도하고 페이지와 코드 페이지를 작성한 후, 대부분의 경우 이전에 해보지 않은 것을 시도한 것처럼 Google에서 기사를 우연히 발견했습니다 (원래 문제와 완전히 다른 것을 검색하는 동안).

http://megakemp.com/2009/02/06/managing-shared-cookies-in-wcf/

섹션 ( Ad-hoc 쿠키 관리 ), 여기에 내 구현이 있습니다 (문제를 시뮬레이션하기 위해 만든 테스트 서비스 사용). 헤더 문자열에서 쿠키를 다시 조립하는 섹션에서 더 많은 온 전성 / 오류 검사를 수행 할 수 있습니다.

        List<string> strings = null;

        // Using Custom Bindings to allow Fiddler to see the HTTP interchange.
        BasicHttpBinding binding = new BasicHttpBinding();            
        binding.AllowCookies = true;
        binding.BypassProxyOnLocal = false;
        binding.ProxyAddress = new Uri("http://127.0.0.1:8888");
        binding.UseDefaultWebProxy = false;

        EndpointAddress url = new EndpointAddress("http://192.168.20.4:42312/Classes/TestService.svc");

        using (TestServiceClient client = new TestServiceClient(binding,url))
        {                
            using (new OperationContextScope(client.InnerChannel))
            {
                strings = new List<string>(client.WSResult());
                HttpResponseMessageProperty response = (HttpResponseMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpResponseMessageProperty.Name];

                CookieCollection cookies = new CookieCollection();
                foreach (string str in response.Headers["Set-Cookie"].ToString().Split(";".ToCharArray()))
                {
                    Cookie cookie = new Cookie(str.Split("=".ToCharArray())[0].Trim(), str.Split("=".ToCharArray())[1].Trim());
                    cookies.Add(cookie);
                }
            }

        } 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AFNetworking Swift의 헤더 응답에서 토큰 값 가져 오기

분류에서Dev

cURL에서 헤더없이 json 응답에서 값 가져 오기

분류에서Dev

SOAP 서비스의 응답에서 널값 가져 오기

분류에서Dev

Jmeter의 응답 데이터에서 값 가져 오기

분류에서Dev

HTTP 응답에서 헤더 가져 오기

분류에서Dev

Firefox Addon에서 HTTP 응답 헤더 가져 오기

분류에서Dev

XML 응답에서 값 가져 오기

분류에서Dev

이진 파일 헤더에서 정수의 숫자 값 가져 오기

분류에서Dev

가져 오기 호출에 헤더가 정의되지 않았습니다.

분류에서Dev

PHP 응답 헤더 가져 오기

분류에서Dev

Karate의 JSON 응답에서 배열에서 최대 값 가져 오기

분류에서Dev

Authorization HTTP 헤더에서 인증 토큰 값 가져 오기

분류에서Dev

임의의 행에서 팬더의 CSV 헤더 가져 오기

분류에서Dev

Matlab의 calllib를 사용하여 C 헤더 파일에서 상수 및 열거 형 값 가져 오기

분류에서Dev

BASH에서 C 함수의 헤더 가져 오기

분류에서Dev

BASH에서 C 함수의 헤더 가져 오기

분류에서Dev

pandas의 데이터에서 헤더 가져 오기

분류에서Dev

Blazor HttpClient 3.2.0 응답 헤더 콘텐츠 유형이 GetFromJsonAsync와 호환되지 않기 때문에 예외 발생 호출 가져 오기

분류에서Dev

JSON 응답에서 값 가져 오기 및 변수에 할당

분류에서Dev

Swift에서 C 헤더 가져 오기

분류에서Dev

API 응답에서 특정 값 가져 오기

분류에서Dev

Python으로 JSON 응답에서 중첩 값 가져 오기

분류에서Dev

Cypress-JSON 응답 본문에서 값 가져 오기

분류에서Dev

응답에서 특정 값 가져 오기

분류에서Dev

AFNetworking : Http 응답에서 JSON 값 가져 오기

분류에서Dev

HTTP 소켓 응답에서 XML 요소 값 가져 오기

분류에서Dev

SOAP XML 응답에서 값 가져 오기

분류에서Dev

REST 응답 코드 (SoapUI)에서 변수 값 가져 오기

분류에서Dev

응답 헤더를 보내기 위해 SimpleHTTPServer 가져 오기

Related 관련 기사

  1. 1

    AFNetworking Swift의 헤더 응답에서 토큰 값 가져 오기

  2. 2

    cURL에서 헤더없이 json 응답에서 값 가져 오기

  3. 3

    SOAP 서비스의 응답에서 널값 가져 오기

  4. 4

    Jmeter의 응답 데이터에서 값 가져 오기

  5. 5

    HTTP 응답에서 헤더 가져 오기

  6. 6

    Firefox Addon에서 HTTP 응답 헤더 가져 오기

  7. 7

    XML 응답에서 값 가져 오기

  8. 8

    이진 파일 헤더에서 정수의 숫자 값 가져 오기

  9. 9

    가져 오기 호출에 헤더가 정의되지 않았습니다.

  10. 10

    PHP 응답 헤더 가져 오기

  11. 11

    Karate의 JSON 응답에서 배열에서 최대 값 가져 오기

  12. 12

    Authorization HTTP 헤더에서 인증 토큰 값 가져 오기

  13. 13

    임의의 행에서 팬더의 CSV 헤더 가져 오기

  14. 14

    Matlab의 calllib를 사용하여 C 헤더 파일에서 상수 및 열거 형 값 가져 오기

  15. 15

    BASH에서 C 함수의 헤더 가져 오기

  16. 16

    BASH에서 C 함수의 헤더 가져 오기

  17. 17

    pandas의 데이터에서 헤더 가져 오기

  18. 18

    Blazor HttpClient 3.2.0 응답 헤더 콘텐츠 유형이 GetFromJsonAsync와 호환되지 않기 때문에 예외 발생 호출 가져 오기

  19. 19

    JSON 응답에서 값 가져 오기 및 변수에 할당

  20. 20

    Swift에서 C 헤더 가져 오기

  21. 21

    API 응답에서 특정 값 가져 오기

  22. 22

    Python으로 JSON 응답에서 중첩 값 가져 오기

  23. 23

    Cypress-JSON 응답 본문에서 값 가져 오기

  24. 24

    응답에서 특정 값 가져 오기

  25. 25

    AFNetworking : Http 응답에서 JSON 값 가져 오기

  26. 26

    HTTP 소켓 응답에서 XML 요소 값 가져 오기

  27. 27

    SOAP XML 응답에서 값 가져 오기

  28. 28

    REST 응답 코드 (SoapUI)에서 변수 값 가져 오기

  29. 29

    응답 헤더를 보내기 위해 SimpleHTTPServer 가져 오기

뜨겁다태그

보관