2017-10-04 3 views
2

여기 뭔가 어리석은 짓을하는 것처럼 보이면 실례합니다. 내 문제에 대한 답변을 위해 다른 스택 오버 플로우 관련 질문을 찾아 보았지만 아무데도 가지 않는 것 같습니다.C# HttpWebRequest 응답 오류 (401)

난 닷넷 코어 MVC 응용 프로그램에서 작업하고 원격 서버에서 일부 데이터를 반환하고자합니다. 나는 HttpWebRequest 클래스를 사용하고있다.

피들러에서 나는 작곡가를 사용하여 다음을 실행했습니다.

enter image description here

당신이 그에게 헤더에 전달 된 두 개의 쿠키와 간단한 GET 요청을 볼 수 있듯이.

위대한 작품과 내게 정확히 무엇이 필요합니다. 다음과 같이 내가 그 DOTNET 세계에서 내 요청을 구성

:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 

request.CookieContainer = new CookieContainer(); 

request.CookieContainer.Add(new Cookie("name", "value", "/", "localhost")); 

가 그때 전화 (질문의 목적을 위해 두 번째 쿠키에 포함되지 않았다) : 아직

var httpResponse = (HttpWebResponse)request.GetResponse(); 

을 수신 '원격 서버에서 오류를 반환했습니다 : (401) 무단'

모두 내가 여기서 뭘 잘못하고있어? 테스트 목적으로 다음 코드 줄을 추가하려고 시도했지만 여전히 운이 없습니다.

request.ServerCertificateValidationCallback = delegate { return true; }; 

모든 답변에 감사드립니다. 게다가 내가 말했듯이, 나는 전문가가 아니므로 그냥 뭔가 어리석은 짓을 할 수있다!

제임스

+2

피들러를 사용하여 C# 코드에서 생성되는 요청을 볼 수 있습니까? 피들러에서 제작 한 작업 요청과 다른 점은 무엇입니까? – Alfredo

+2

요청하신 URL이 localhost에 있습니까? localhost 도메인에만 전달되도록 쿠키를 설정했습니다. –

+0

안녕하세요 @Ed T 귀하의 의견에 감사드립니다. 나는 네가 한 말을 바꿔서 이걸 올바른 도메인으로 바꾸었다. 빙고! 그것은 효과가 있었다. 그 하나를 발견 했어야했다! 이것을 대답으로 바꾸면 나는 투표를하고 이것을 대답으로 표시 할 것입니다. James –

답변

1

, 당신은 단지 로컬 호스트 도메인에 대한 요청에 전달된다는 것을 의미하는 "로컬 호스트"로 쿠키의 도메인을 설정한다. 실제로 요청을 보내는 도메인으로 설정해야합니다.

2

나는 귀하의 요청이 POST에 디폴트 생각하지만 피들러의 예는 GET을하고있다. 추가

시도해보십시오 Cookie 생성자에서

  request.Method = "GET"; 
      request.ContentType = "text/xml; encoding='utf-8'"; 
+2

안녕하세요 @ Scrappydog 내가 관심을 보였지만 나도 시도했지만 아직 효과가 없었습니다. 요청이 여전히 GET으로 처리되었습니다. 나는 이것을 명백하게 만드는 데 아무런 해가 없다고 생각한다. 그래서 나는 투표 할 것이다. –