Ejemplo n.º 1
0
 private static void accumulateValue(JSONObject obj, string key, Object value)
 {
     JSONArray arr=null;
     if(obj.has(key)){
       arr=obj.getJSONArray(key);
     } else {
       arr=new JSONArray();
       obj.put(key, arr);
     }
     arr.put(value);
 }
Ejemplo n.º 2
0
 private static int[] getLastKnownTime(JSONObject obj)
 {
     if(obj.has("start")){
       JSONArray arr=obj.getJSONArray("start");
       //Console.WriteLine("start %s",arr);
       Object result=arr[arr.Length-1];
       if(result is string){
     int[] components=new int[]{
     Int32.MinValue,
     Int32.MinValue,
     Int32.MinValue,
     Int32.MinValue,
     Int32.MinValue,
     Int32.MinValue,
     Int32.MinValue,
     Int32.MinValue
     };
     if(matchDateTimePattern((string)result,
     new string[]{"%Y-%M-%d","%Y-%D"},
     new string[]{"%H:%m:%s","%H:%m",
     "%H:%m:%s%Z:%z",
     "%H:%m:%s%Z%z","%H:%m:%s%G",
     "%H:%m%Z:%z","%H:%m%Z%z","%H:%m%G"},
     components,true,true,true)){
       // reset the time components
       components[3]=Int32.MinValue;
       components[4]=Int32.MinValue;
       components[5]=Int32.MinValue;
       components[6]=Int32.MinValue;
       components[7]=Int32.MinValue;
       //Console.WriteLine("match %s",Arrays.ToString(components));
       return components;
     } else {
       //Console.WriteLine("no match");
     }
       }
     }
     return null;
 }
Ejemplo n.º 3
0
 public CacheControl readObjectFromStream(PeterO.Support.InputStream stream)
 {
     try {
     JSONObject jsonobj=new JSONObject(StreamUtility.streamToString(stream));
     CacheControl cc=new CacheControl();
     cc.cacheability=jsonobj.getInt("cacheability");
     cc.noStore=jsonobj.getBoolean("noStore");
     cc.noTransform=jsonobj.getBoolean("noTransform");
     cc.mustRevalidate=jsonobj.getBoolean("mustRevalidate");
     cc.requestTime=Int64.Parse(jsonobj.getString("requestTime"),NumberStyles.AllowLeadingSign,CultureInfo.InvariantCulture);
     cc.responseTime=Int64.Parse(jsonobj.getString("responseTime"),NumberStyles.AllowLeadingSign,CultureInfo.InvariantCulture);
     cc.maxAge=Int64.Parse(jsonobj.getString("maxAge"),NumberStyles.AllowLeadingSign,CultureInfo.InvariantCulture);
     cc.date=Int64.Parse(jsonobj.getString("date"),NumberStyles.AllowLeadingSign,CultureInfo.InvariantCulture);
     cc.code=jsonobj.getInt("code");
     cc.age=Int64.Parse(jsonobj.getString("age"),NumberStyles.AllowLeadingSign,CultureInfo.InvariantCulture);
     cc.uri=jsonobj.getString("uri");
     cc.requestMethod=jsonobj.getString("requestMethod");
     if(cc.requestMethod!=null) {
       cc.requestMethod=StringUtility.toLowerCaseAscii(cc.requestMethod);
     }
     cc.headers=new List<string>();
     JSONArray jsonarr=jsonobj.getJSONArray("headers");
     for(int i=0;i<jsonarr.Length;i++){
       string str=jsonarr.getString(i);
       if(str!=null && (i%2)!=0){
     str=StringUtility.toLowerCaseAscii(str);
     if("age".Equals(str) ||
     "connection".Equals(str) ||
     "keep-alive".Equals(str) ||
     "proxy-authenticate".Equals(str) ||
     "proxy-authorization".Equals(str) ||
     "te".Equals(str) ||
     "trailers".Equals(str) ||
     "transfer-encoding".Equals(str) ||
     "upgrade".Equals(str)){
       // Skip "age" header field and
       // hop-by-hop header fields
       i++;
       continue;
     }
       }
       cc.headers.Add(str);
     }
     return cc;
       } catch(InvalidCastException e){
     Console.WriteLine(e.StackTrace);
     return null;
       } catch(FormatException e){
     Console.WriteLine(e.StackTrace);
     return null;
       } catch (Json.InvalidJsonException e) {
     Console.WriteLine(e.StackTrace);
     return null;
       }
 }