2013-03-08 40 views
0

在我的Rails應用程序中,我使用rails web-service來驗證用戶。 這裏網址:ROR +嘗試從VB.Net訪問RESTful URL

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

在這裏,我通過用戶名和密碼authenticateUser方法驗證用戶。它與我的Rails應用程序工作正常。但是,當我試圖從.Net代碼訪問這個,但我得到error 406

' 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(); 

我想,當我從.NET代碼訪問它,它應該是一個跨域調用。它對結果有什麼影響嗎?

我收到錯誤:遠程服務器返回錯誤:(406)不可接受。 請建議一些事情。提前致謝。

回答

0

406意味着您的客戶指定它不接受Web服務願意提供的格式。

假設響應application/json,你可以change the Accept header

req.Accept = "application/json" 

如果它不工作,這意味着,Web服務實際上並沒有放棄在application/json迴應,你應該再看看它實際上服務於什麼。

如果你不相信服務器的406,那麼你應該開始尋找Web服務代碼,看看爲什麼它返回一個406雖然能夠產生application/json響應,並請求已列入其Acceptapplication/json

+0

我們已經在上面添加了標題。爲了補充問題,這是一個跨域請求。這對此有什麼影響嗎? – Rubyist 2013-03-08 06:33:58

+0

否。再次檢查您的標題。 406只能是這個意思。 – bdares 2013-03-08 06:35:07

+0

請參閱上面C#的更新代碼。 – Rubyist 2013-03-08 06:39:57