上次我们介绍了:使用LLServer实现对leveldb的访问封装详解,本文我们介绍一下使用LLServer实现对leveldb的访问封装的C#客户端源码,希望能够对您有所帮助。
1.这里将Discuz!NT使用的memcached 客户端(已修改过部分代码),大家可以使用它(支持链接池)来直接访问LLServer,相应的示例在压缩包的MemcachedApp\MemcachedApp\sample\sample_1.aspx中。下载地址:http://files.cnblogs.com/daizhj/MemcachedApp_llserver.rar
2.当然也可以使用c#的httpwebrequest来直接访问,比如(代码源自discuz!nt):
- namespaceDiscuz.Common
- {
- ///<summary>
- ///httpPOST请求url
- ///</summary>
- ///<paramnameparamname="url">请求的url链接</param>
- ///<paramnameparamname="method">方法名称,如"POST","GET"</param>
- ///<paramnameparamname="postData">方法名称为"POST"时,所有提交的数据</param>
- ///<returns></returns>
- publicstaticstringGetHttpWebResponse(stringurl,stringmethod,stringpostData)
- {
- HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create(url);
- request.Method=method;
- request.ContentType="application/x-www-form-urlencoded";
- request.ContentLength=string.IsNullOrEmpty(postData)?0:postData.Length;
- //request.UserAgent="Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.2;.NETCLR1.0.3705;)";
- request.Timeout=60000;
- HttpWebResponseresponse=null;
- try
- {
- if(!string.IsNullOrEmpty(postData))
- {
- StreamWriterswRequestWriter=newStreamWriter(request.GetRequestStream());
- swRequestWriter.Write(postData);
- if(swRequestWriter!=null)
- swRequestWriter.Close();
- }
- response=(HttpWebResponse)request.GetResponse();
- using(StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.UTF8))
- {
- returnreader.ReadToEnd();
- }
- }
- catch
- {
- returnnull;
- }
- finally
- {
- if(response!=null)
- response.Close();
- }
- }
- //这里发送请求并返回数据
- stringresult=GetHttpWebResponse("http://127.0.0.1:11211/?opt=get&charset=utf-8&key=username","GET",null);
当然你可也以用其它语言的memcached客户端来访问LLServer,不过有一点要说明的是,目前llserver只存储序列化的字符串对象,如果你的数据为泛型或数组等类型,请先序列化之后再进行存储。
还有就是在C#里可以对数据进行二进制序列化,这里必须将序列化后的对象进行base64位编码之后再存储,否则会报异常,切记。
以上就是使用LLServer实现对leveldb的访问封装的C#客户端源码程序,本文就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】