内部のRedmineサーバーでは、HTTPS経由でのみ接続できます。.NETからHTTPS経由でRESTAPIを使用しようとした方法は次のとおりです。
- .NETでのRESTAPIの使用で提案されているように、ホスト変数を
"https://redmine.company.com/redmine/"
に、apiKeyをに設定します"ffffffffffffffffffffffffffffffffffffffff"
。 次のコードで最初から:
using System.IO; using System.Net; class Program { static void Main(string[] args) { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => true; var request = (HttpWebRequest)WebRequest.Create( "https://redmine.company.com/redmine/issues/149.xml?key=ffffffffffffffffffffffffffffffffffffffff"); request.CookieContainer = new CookieContainer(); request.Method = "GET"; using (var response = request.GetResponse()) // Hangs here using (var responseStream = response.GetResponseStream()) using (var memoryStream = new MemoryStream()) { responseStream.CopyTo(memoryStream); } } }
もちろん、これは私の実際の会社company.com
とffffffffffffffffffffffffffffffffffffffff
私のアカウントページの実際のAPIキーの単なるプレースホルダーです。両方の試行は、WebExceptionでタイムアウトする前にしばらくハングします(試行2のハングここのコメントを参照してください)。次に、Redmineサーバーから他のもの(time_entries.csv、アトムフィードなど)をダウンロードしようとしましたが、毎回まったく同じ結果になりました。
これまでのところ悪い。ただし、URLをコピーhttps://redmine.company.com/redmine/issues/149.xml?key=ffffffffffffffffffffffffffffffffffffffff
してブラウザに貼り付けると、期待どおりの応答が得られます。そのため、Redmineサーバーは正常に動作しているように見えますが、どういうわけか.NETからサーバーを動作させることができません。
私は他のHTTPSサイトからコンテンツを正常にダウンロードし、http://demo.redmine.orgから試行2のコード(もちろん、適合したURLなど)を使用して問題データをダウンロードすることができました。したがって、RedmineがHTTPSを介して通信する方法について何か特別なことがあるようです。
誰かが.NETからHTTPS経由でRedmineRESTAPIを正常に使用している場合、私が間違っていることについてのいくつかのポインタに本当に感謝します。
また、クライアント側からこれをデバッグする方法についての提案をいただければ幸いです。これまでのところ、Fiddler2を試しましたが、成功しませんでした。「HTTPSトラフィックの復号化」設定を有効にするとすぐに、InternetExplorerでリクエストを行っても回答が得られなくなります。