我想複製使用.NET類(httpWebRequest)而不是捲曲的數據庫。不幸的是,cURL的工作,但在.NET中(可能)相同的語法失敗,404「未經授權訪問或創建數據庫」的錯誤。以下是我的代碼。Couchdb複製 - 擅自創建或訪問數據庫
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("sourceURL");
request.Method = "POST";
request.ContentType = "application/json";
long ticks = DateTime.UtcNow.Ticks;
string json = "{ \"_id\":\"database_replicate" + ticks + "\", \"source\":\"sourceURL/database\", \"target\":\"database\", \"create_target\":true, \"user_ctx\": { \"roles\": [\"_admin\"] } }";
using (var writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(json);
writer.Close();
}
然後,就在這裏失敗了,對響應:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
我複製到和從本地主機。我試過使用request.Credentials傳遞憑據,但這並沒有改變這個問題。也不在URL中傳遞憑證。
感謝您的評論。事實證明,這並沒有抓住我的認證 - 這是掛斷。所以我明確地創建了一個Authorize頭,它工作。在cURL中,我在URL中發送了用戶名和密碼,但我必須在.NET中明確地執行它。 – Skitterm 2012-08-15 16:54:21
我一直在爲一個相關的問題奮鬥了3天。原來,user_ctx參數是我所需要的。謝謝! – 2013-07-25 09:19:39
我也被卡在'user_ctx'參數上。對於任何對它做什麼以及爲什麼需要它感到好奇的人,請查看[文檔中的細微處](http://docs.couchdb.org/en/1.6.1/replication/replicator.html#delegations) – 2016-03-06 22:09:57