C# CouchDB连接
我试图连接到CouchDB,但我似乎在任何地方都找不到关于它的清晰解释。这是我在C#中尝试过的,但它没有任何作用C# CouchDB连接,c#,connection,couchdb,C#,Connection,Couchdb,我试图连接到CouchDB,但我似乎在任何地方都找不到关于它的清晰解释。这是我在C#中尝试过的,但它没有任何作用 using (var db = new MyCouch.Client("http://127.0.0.1:5984/db")) { var db = "{'_id': '1', '$doctype': 'db', 'name': '1'}"; var response = db.Documents.Post(db);
using (var db = new MyCouch.Client("http://127.0.0.1:5984/db"))
{
var db = "{'_id': '1', '$doctype': 'db', 'name': '1'}";
var response = db.Documents.Post(db);
Console.Write(response.GenerateToStringDebugVersion());
}
有人能给我解释一下如何连接以及如何简单地插入数据吗?连接到CouchDB的简单方法是使用System.Net.Http.HttpClient并跳过客户端库本身(尽管有一些很好的方法) 因为CouchDB API是HTTP,所以GET、PUT POST和DELETE是您需要的主要方法,下面提供了一个通用方法包装PUT的示例,使用本机JSON serialiser接受POCO模型T并将其作为文档写入(为了清楚起见,省略了序列化异常处理) 如果使用基本身份验证,则可以使用凭据作为服务器Url的前缀,例如:如果使用Cookie身份验证,则使用新的CookieContainer设置HttpClientHandler,并将处理程序传递给HttpClient构造函数 最后两项说明:
- 检查提交PUT/db/newid与提交POST/db以创建文档之间的差异
- 如果需要在同一请求上创建多个文档(即,在同一请求上对新文档进行分组以获得多个文档的ACID插入),还可以查看批量文档API
public async Task<R> Put<T, R>(T docObject)
{
string DbName = "demodb";
string NewDocId = "newDocId";
// Valid paths, methods and response codes are documented here: http://docs.couchdb.org/en/stable/http-api.html
using (var httpClient = new HttpClient())
{
httpClient.BaseAddress = new Uri("http://server:5984/");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// NB: PutAsJsonAsync is an extension method defined in System.Net.Http.Formatting
var response = await httpClient.PutAsJsonAsync(DbName + "/" + NewDocId, docObject);
R returnValue;
if (response.StatusCode == HttpStatusCode.OK)
{
returnValue = await response.Content.ReadAsAsync<R>();
}
// Check the docs for response codes returned by each method.
// Do not forget to check for HttpStatusCode.Conflict (HTTP 409) and respond accordingly.
}
}
public class CreateResponse
{
// use of JsonPropertyAttribute is supported on properties if needed.
public bool ok { get; set; }
public string id { get; set; }
public string rev { get; set; }
public string error { get; set; }
public string reason { get; set; }
}