1

herokuを介してホストされているNeo4jインスタンスにRESTリクエストを送信しようとしています。サーバーは基本認証でセットアップされています。

これは、Herokuから提供されたURLです(末尾のスラッシュに注意してください):http:// username:password@instance.hosted.neo4j.org:123 / db / data /

このインスタンスに接続するためにRestSharpを使用しています。ただし、RestSharpは末尾のスラッシュを削除します。コード。結果のURLは次のようになります:http:// username:password@instance.hosted.neo4j.org:123 / db / data

これにより、HTTP 301to(末尾のスラッシュに注意)が生成されます:http:// username:password@instance.hosted.neo4j.org:123 / db / data /

問題は、承認ヘッダーがリダイレクトMSDN間で永続化されないことです。このリダイレクトの結果はHTTP 401

これを回避する明白な方法はありますか?私は次のことを試しました:

  • /db/data//RestSharpが1つのスラッシュのみを削除し、残りの1つを残すように、末尾に2つのスラッシュを指定します。他のリクエストの形式が無効であるため、これは機能しません。/db/data//query/stuff
  • CredentialCacheクラスを使用します。これは機能しますが、アクションごとに2つのリクエストが発生します(1つは401チャレンジ用、もう1つはレスポンス用)
  • IAuthenticationModlue-MSDNでこれに関する最小限の情報が見つかりましたが、カスタムクラスを試した後でも、前述のダブルホップの問題が発生します。
  • 最初のRESTリクエストをnew RestRequest("/", Method.GET);代わりに変更しますnew RestRequest("", Method.GET);-唯一の問題は、特定のニーズのためにアプリとRestSharpの間にあるオープンソースプロジェクトを変更したくないということです。RestSharpはすべての終了スラッシュを削除します
4

1 に答える 1

0

Googleグループのピートから:

「ルートリソース」を要求するためのやや厄介な回避策の1つは、新しいRestRequest( "/")を使用することです。末尾の空白は、RestSharpがスラッシュをトリミングできないようにしますが、(ほとんどの)サーバーでは無視されます。

https://groups.google.com/forum/?fromgroups#!topic/restsharp/8mBmaXksmsg

于 2012-06-21T03:05:42.133 に答える