使用LLServer實(shí)現(xiàn)對(duì)leveldb的訪問(wèn)封裝的C#客戶端源碼
上次我們介紹了:使用LLServer實(shí)現(xiàn)對(duì)leveldb的訪問(wèn)封裝詳解,本文我們介紹一下使用LLServer實(shí)現(xiàn)對(duì)leveldb的訪問(wèn)封裝的C#客戶端源碼,希望能夠?qū)δ兴鶐椭?/p>
1.這里將Discuz!NT使用的memcached 客戶端(已修改過(guò)部分代碼),大家可以使用它(支持鏈接池)來(lái)直接訪問(wèn)LLServer,相應(yīng)的示例在壓縮包的MemcachedApp\MemcachedApp\sample\sample_1.aspx中。下載地址:http://files.cnblogs.com/daizhj/MemcachedApp_llserver.rar
2.當(dāng)然也可以使用c#的httpwebrequest來(lái)直接訪問(wèn),比如(代碼源自discuz!nt):
- namespaceDiscuz.Common
- {
- ///<summary>
- ///httpPOST請(qǐng)求url
- ///</summary>
- ///<paramnameparamname="url">請(qǐng)求的url鏈接</param>
- ///<paramnameparamname="method">方法名稱(chēng),如"POST","GET"</param>
- ///<paramnameparamname="postData">方法名稱(chēng)為"POST"時(shí),所有提交的數(shù)據(jù)</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();
- }
- }
- //這里發(fā)送請(qǐng)求并返回?cái)?shù)據(jù)
- stringresult=GetHttpWebResponse("http://127.0.0.1:11211/?opt=get&charset=utf-8&key=username","GET",null);
當(dāng)然你可也以用其它語(yǔ)言的memcached客戶端來(lái)訪問(wèn)LLServer,不過(guò)有一點(diǎn)要說(shuō)明的是,目前l(fā)lserver只存儲(chǔ)序列化的字符串對(duì)象,如果你的數(shù)據(jù)為泛型或數(shù)組等類(lèi)型,請(qǐng)先序列化之后再進(jìn)行存儲(chǔ)。
還有就是在C#里可以對(duì)數(shù)據(jù)進(jìn)行二進(jìn)制序列化,這里必須將序列化后的對(duì)象進(jìn)行base64位編碼之后再存儲(chǔ),否則會(huì)報(bào)異常,切記。
以上就是使用LLServer實(shí)現(xiàn)對(duì)leveldb的訪問(wèn)封裝的C#客戶端源碼程序,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






