2013-03-08 4 views
0

내 레일 애플리케이션에서 레일스 웹 서비스를 사용하여 사용자를 인증했습니다. 다음 URL : 여기ROR + VB.Net에서 RESTful URL에 액세스하려고 시도합니다.

https://www.test.com/[email protected]&password=123456

나는 사용자의 유효성을 검사에서 AuthenticateUser 방법으로 사용자 이름과 암호를 전달하고있다. 그것은 내 레일 애플 리케이션과 함께 잘 작동합니다. 하지만 .Net Code에서이 코드에 액세스하려고 시도했지만 error 406이되었습니다. 내가 .NET 코드에서 액세스하고 때

' Call json web service

String uri = "https://www.test.com/[email protected]&password=123456"; 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); 
req.Method = "GET"; 
req.Accept = "application/json"; 
req.PreAuthenticate = true; 
req.Credentials = CredentialCache.DefaultCredentials; 
    WebResponse response = req.GetResponse(); 
    Stream s = response.GetResponseStream(); 

같아요

은,는 크로스 도메인 호출 될 예정이다. 결과에 어떤 영향을 미칩니 까?

오류가 발생합니다. 원격 서버에서 오류를 반환했습니다. (406) 사용할 수 없습니다. 몇 가지 제안 해주세요. 미리 감사드립니다.

답변

0

406은 클라이언트가 웹 서비스에서 제공하려는 형식을 허용하지 않는다고 지정했음을 의미합니다. 그것이 작동하지 않는 경우 웹 서비스가 실제로 application/json에 응답을 제공하지 않는 것을 의미,

req.Accept = "application/json" 

, 당신은 다른 살펴 보셔야합니다 :

응답이 application/json 것을, 당신이 change the Accept header 수 있습니다 가정 그것이 실제로 봉사하는 것에서.

당신은 서버의 406, 당신은 웹 서비스 코드를 찾고 시작하고는 application/json 응답을 생성 할 수 있지만 그것은 406를 반환 왜 참조해야하고 요청의 Accept 헤더에 application/json을 포함했다고 생각하지 않는 경우 .

+0

위의 헤더가 이미 추가되었습니다. 질문에 추가하려면 도메인 간 요청입니다. 이것이 이것에 어떤 영향을 미칩니 까? – Rubyist

+0

번호 헤더를 다시 확인하십시오. 406은 그것을 의미 할 수 있습니다. – bdares

+0

위의 업데이트 된 C# 코드를 참조하십시오. – Rubyist

관련 문제