使用LLServer實現對leveldb的訪問封裝的C#客戶端源碼
上次我們介紹了:使用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#客戶端源碼程序,本文就介紹到這里了,希望本次的介紹能夠對您有所收獲!
【編輯推薦】