0

Rails アプリケーションでは、Rails Web サービスを使用してユーザーを認証しています。ここに URL :

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

ここでは、ユーザーを検証するためにユーザー名とパスワードを AuthenticateUser メソッドに渡しています。私のRailsアプリでは問題なく動作しています。しかし、.Net コードからこれにアクセスしようとすると、error 406.

' json Web サービスを呼び出す

  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 サービス コードを調べて、application/json応答を生成でき、要求がapplication/jsonそのAcceptヘッダーに含まれているにもかかわらず、406 を返す理由を確認する必要があります。

于 2013-03-08T06:20:24.573 に答える