VLC의 HTTP 인터페이스를 사용하여 현재 재생 목록 (GET /requests/playlist.xml
)을 읽으려고합니다.HttpWebRequest를 사용하는 VLC 인증
이것은 이전 버전의 VLC에서 잘 작동했지만 최근 버전에서는 암호 옵션을 추가 한 다음 필수로 설정했습니다. (. 어떤 이름이 없다)
는 내가 처음이를 사용하여 시도 :
request.Credentials = new NetworkCredential("", password);
request.PreAuthenticate = true;
그러나이 401 오류를 리포팅 WebException이 발생했습니다. 트래픽 스누핑 (snooping)은 Authorization 헤더가없는 요청 하나를 보낸 다음 실제 인증을 시도하지 않고 즉시 오류를보고 한 것으로 나타났습니다. (VLC는 WWW-Authenticate 챌린지로 올바르게 응답했습니다.)
공백이 아닌 사용자 이름을 지정하면 이전과 같은 요청을 보내지 만 Authorization 헤더를 지정하는 두 번째 요청으로 후속 조치합니다 - VLC가 사용자 이름을 거부하기 때문에 실패합니다.
나는 마지막으로 명시 적으로 헤더를 설정하여 작동하도록 관리 :
var credential = Convert.ToBase64String(Encoding.Default.GetBytes(":" + password));
request.Headers[HttpRequestHeader.Authorization] = "Basic " + credential;
하지만 이것은 원래 일을해야 뭔가처럼 보인다. 이 버그는 .NET (또는 WinInet)의 버그이며 빈 사용자 이름을 처리 할 수 없습니다. 또는 그것은 사용자 이름을 사용하지 않는 VLC의 버그입니다. 또는 다른 코드를 설정해야하는 코드의 버그입니까?