0

在我的 rails 应用程序中,我使用 rails web-service 对用户进行身份验证。这里网址:

https://www.test.com/AuthenticateUser?username=tuser@mailinator.com&password=123456

在这里,我将用户名和密码传递给 AuthenticateUser 方法来验证用户。我的 Rails 应用程序运行良好。但是当我试图从 .Net 代码中访问它时,我得到了error 406.

' 调用 json 网络服务

  String uri = "https://www.test.com/AuthenticateUser?username=tuser@mailinator.com&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)不可接受。请提出一些建议。提前致谢。

4

1 回答 1

0

406表示您的客户端指定它不会接受 Web 服务愿意提供的格式。

假设响应是application/json,您可以更改Accept标头

req.Accept = "application/json"

如果它不起作用,则意味着 Web 服务实际上并没有在 中给出响应application/json,您应该再看看它实际提供的服务。

如果您不相信服务器的 406,那么您应该开始查看 Web 服务代码,看看为什么它会返回 406,即使它可以产生application/json响应,并且请求已application/json包含在其Accept标头中。

于 2013-03-08T06:20:24.573 回答