最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android與asp.net服務(wù)端共享session的方法詳解

 更新時間:2017年09月07日 08:53:02   作者:KimhillZhang  
這篇文章主要給大家介紹了關(guān)于android與asp.net服務(wù)端如何共享session的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。

前言

最近因為工作的需要,要實現(xiàn)一個功能,就是需要通過發(fā)送短信進(jìn)行注冊,現(xiàn)在想把短信驗證碼放到服務(wù)器的session值中,當(dāng)客戶端收到短信并提交短信碼時由asp.net服務(wù)端進(jìn)行判斷,那么如何共享這個session那么需要在android客戶端中添加幾行代碼。

實現(xiàn)方法

如下操作。第一次數(shù)據(jù)請求時就獲取這個cookie的名稱并且得到這個cookie的值,這個即是sessionid的值并保存在一個靜態(tài)變量中,然后在第二次請求數(shù)據(jù)的時候要將這個sessionid一并放在Cookie中發(fā)給服務(wù)器,服務(wù)器則是通過這個sessionid來識別究竟是那個客戶端在請求數(shù)據(jù)的,在asp.net中這個sessionid的名字叫做ASP.NET_SessionId,當(dāng)然我們可以從程序中獲取。

如下代碼:

//獲取服務(wù)端的這個sessionid的名稱

/* 獲取cookieStore */ 
List<Cookie> cookies = cookieStore.getCookies(); 
for(int i=0;i<cookies.size();i++){ 
  String sessionid = cookies.get(i).getName(); 從這里可以獲取到這個sessionid,即為 ASP.NET_SessionId

}

獲取sessionid的值

for(int i=0;i<cookies.size();i++){

if("ASP.NET_SessionId".equals(cookies.get(i).getName())){ 
  JSESSIONID = cookies.get(i).getValue(); //這個即為sessionid的值
  break; 
}

}

完整的httputils代碼如下:

public static DefaultHttpClient httpClient = null;

 private static String JSESSIONID; //定義一個靜態(tài)的字段,保存sessionID 

 public static String getRequest(String url)

 {

 httpClient = new DefaultHttpClient();

 HttpGet get = new HttpGet(url);

 try

 {

 HttpParams params = new BasicHttpParams();

  HttpConnectionParams.setConnectionTimeout(params, 10000);//設(shè)置連接超時

  HttpConnectionParams.setSoTimeout(params, 15000);//設(shè)置請求超時

  get.setParams(params);

  get.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");

  if(null != JSESSIONID){ 

  get.setHeader("Cookie", "ASP.NET_SessionId="+JSESSIONID); 

  }

  //連接響應(yīng),通過HttpResponse獲得響應(yīng)信息

 HttpResponse httpResponse = httpClient.execute(get);

 if(httpResponse.getStatusLine().getStatusCode() == 200)

 {

 //取得響應(yīng)字符串

 String result = EntityUtils.toString(httpResponse.getEntity());

 return result;

 }

 }

 catch (ClientProtocolException e)

 {

 return null;

 }

 catch (IOException e)

 {

 return null;

 }

 return null;

 }

 

 public static String postRequest(String url, HashMap<String, String> rawParams) throws Exception

 {

 httpClient = new DefaultHttpClient();

 //創(chuàng)建POST請求方式

 HttpPost post = new HttpPost(url);

 

 HttpParams cparams = new BasicHttpParams();

 

 HttpConnectionParams.setConnectionTimeout(cparams, 10000);//設(shè)置連接超時

 HttpConnectionParams.setSoTimeout(cparams, 15000);//設(shè)置請求超時

 post.setParams(cparams);

 post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");

 if(null != JSESSIONID){ 

 post.setHeader("Cookie", "ASP.NET_SessionId="+JSESSIONID); 

  }

 //使用NameValuePair來保存要傳遞的參數(shù),可以使用BasicNameValuePair來構(gòu)造一個要被傳遞的參數(shù)

 //通過add添加這個參數(shù)到NameValuePair中

 ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();

 for(String key : rawParams.keySet())

 {

 //添加要傳傳遞的參數(shù)

 params.add(new BasicNameValuePair(key, rawParams.get(key)));

 }

 //post需要為參數(shù)設(shè)置字符集

 HttpEntity httpEntity = new UrlEncodedFormEntity(params, HTTP.UTF_8);

 //請求httpRequest

 post.setEntity(httpEntity);

 //發(fā)送POST請求并獲取響應(yīng)

 HttpResponse httpResponse = null;

 try

 {

  httpResponse = httpClient.execute(post);

 }

 catch(Exception ex)

 {

 String ee = ex.getMessage();

 }

 if(httpResponse.getStatusLine().getStatusCode() == 200)

 {

 String result = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);

 /* 獲取cookieStore

        ASP.NET_SessionId就是通過上面的方法獲取到。

      */ 

   CookieStore cookieStore = httpClient.getCookieStore(); 

   List<Cookie> cookies = cookieStore.getCookies();

   for(int i=0;i<cookies.size();i++){ 

    if("ASP.NET_SessionId".equals(cookies.get(i).getName())){ 

     JSESSIONID = cookies.get(i).getValue(); 

     break; 

    } 

   } 

 return result;

 }

 return null;

 }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
 

相關(guān)文章

  • 很實用的Android日期計算類

    很實用的Android日期計算類

    這篇文章主要為大家詳細(xì)介紹了很實用的Android日期計算類,一個是獲取與今天時間差,另一個是日期格式化工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 深入理解Android中Scroller的滾動原理

    深入理解Android中Scroller的滾動原理

    今天給大家講解的是Scroller類的滾動實現(xiàn)原理,可能很多朋友不太了解該類是用來干嘛的,但是研究Launcher的朋友應(yīng)該對他很熟悉,Scroller類是滾動的一個封裝類,可以實現(xiàn)View的平滑滾動效果,而我們今天就來探究一下為什么Scroller能夠?qū)崿F(xiàn)平滑滾動。
    2016-08-08
  • Android中View的炸裂特效實現(xiàn)方法詳解

    Android中View的炸裂特效實現(xiàn)方法詳解

    這篇文章主要介紹了Android中View的炸裂特效實現(xiàn)方法,涉及Android組件ExplosionField的相關(guān)定義與使用技巧,需要的朋友可以參考下
    2016-07-07
  • Android 斷點(diǎn)續(xù)傳原理以及實現(xiàn)

    Android 斷點(diǎn)續(xù)傳原理以及實現(xiàn)

    這篇文章主要介紹了Android 斷點(diǎn)續(xù)傳原理以及實現(xiàn)的相關(guān)資料,這里對斷點(diǎn)續(xù)傳原理進(jìn)行了詳細(xì)介紹,需要的朋友可以參考下
    2016-12-12
  • Android中發(fā)送有序廣播案例代碼

    Android中發(fā)送有序廣播案例代碼

    本篇文章主要介紹了Android中發(fā)送有序廣播案例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Android實現(xiàn)測試環(huán)境噪音分貝

    Android實現(xiàn)測試環(huán)境噪音分貝

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)測試環(huán)境噪音分貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • android中Invalidate和postInvalidate的更新view區(qū)別

    android中Invalidate和postInvalidate的更新view區(qū)別

    Android中實現(xiàn)view的更新有兩組方法,一組是invalidate,另一組是postInvalidate,其中前者是在UI線程自身中使用,而后者在非UI線程中使用,感興趣的朋友可以了解下哦
    2013-01-01
  • Android實現(xiàn)啟動頁倒計時效果

    Android實現(xiàn)啟動頁倒計時效果

    這篇文章主要介紹了Android實現(xiàn)啟動頁倒計時效果的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用Android進(jìn)行開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Android 自定義通用的loadingview實現(xiàn)代碼

    Android 自定義通用的loadingview實現(xiàn)代碼

    本篇文章主要介紹了Android 自定義通用的loadingview實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Android Selector和Shape的使用方法

    Android Selector和Shape的使用方法

    本文介紹下背景選擇器、文字顏色選擇器、背景漸變器的實現(xiàn)。結(jié)合Shape來實現(xiàn)背景漸變效果。或者只是以color代替drawable作為背景選擇器的元素
    2013-06-06

最新評論

尤溪县| 郁南县| 玛曲县| 乐山市| 云南省| 渭南市| 普定县| 沾益县| 咸宁市| 嵊州市| 建平县| 香港| 达孜县| 井研县| 惠来县| 太湖县| 项城市| 南宫市| 赫章县| 瓦房店市| 石楼县| 上林县| 图片| 沙坪坝区| 永嘉县| 龙陵县| 定州市| 吉安市| 和政县| 衡阳市| 木里| 阿鲁科尔沁旗| 周至县| 宜春市| 泸定县| 安庆市| 邵东县| 玛曲县| 宁晋县| 凌海市| 庆云县|