Exemplo n.º 1
0
			public Version(JSONDoc o)
			{
				if (o == null) { return; }
				version = o["version"];
				year = o["year"];
				api = o["api"];
				apiVersions = null;
				if (o.ContainsKey("apiVersions"))
				{
					JSONArray a = o["apiVersions"] as JSONArray;
					if (a != null)
					{
						apiVersions = new List<string>();
						foreach (JSONField f in a.Value)
						{
							apiVersions.Add(f.ToString());
						}
					}
				}
				if (apiVersions == null)
				{
					apiVersions = new List<string>();
					apiVersions.Add("1");
				}

			}
Exemplo n.º 2
0
			public ReviewList(JSONDoc jdoc)
			{
				lastSeen = jdoc["lastSeen"];
				totalCount = jdoc["totalCount"];

				JSONArray reviews = jdoc["reviews"] as JSONArray;
                if (reviews != null)
                {
                    foreach (JSONObject review in reviews.Value)
                    {
                        this.Add(new Review(review));
                    }
                }
			}
Exemplo n.º 3
0
			public Review(JSONDoc jdoc)
				: this(jdoc as JSONObject)
			{
			}
Exemplo n.º 4
0
		public JSONDoc HttpPost(string RequestUrl, string RequestContent)
		{
			JSONDoc jDoc = null;
			HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(RequestUrl);

			SetBasicAuthHeader(req, credentials);

			req.ContentType = "application/x-www-form-urlencoded";
			req.Method = "POST";
			try
			{
				byte[] bytedata = Encoding.UTF8.GetBytes(RequestContent);
                req.ContentLength = bytedata.Length;
				req.GetRequestStream().Write(bytedata, 0, bytedata.Length);

				WebResponse res = req.GetResponse();

				if (req.HaveResponse && (res != null) && (res.GetResponseStream() != null))
				{
					if (res.ContentLength > 0)
					{
						// the easy way, we know how much we need to read
						byte[] buff;
						buff = new byte[res.ContentLength];
						int cnt = 0;
						while (cnt < (int)res.ContentLength)
						{
							int bytesLeft = (int)res.ContentLength - cnt;
							cnt += res.GetResponseStream().Read(buff, cnt, bytesLeft);
						}
						string str = Encoding.UTF8.GetString(buff);
						jDoc = new JSONParser.JSONDoc(str);
					}
					else
					{
						TextReader str = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
						jDoc = new JSONParser.JSONDoc(str);
					}
				}
				res.Close();

				return jDoc;
			}
			catch (WebException ex)
			{
				if ((ex.Response != null) && (ex.Response.GetResponseStream() != null))
				{
					if (ex.Response.ContentLength > 0)
					{
						// the easy way, we know how much we need to read
						byte[] buff;
						buff = new byte[ex.Response.ContentLength];
						int cnt = 0;
						while (cnt < (int)ex.Response.ContentLength)
						{
							int bytesLeft = (int)ex.Response.ContentLength - cnt;
							cnt += ex.Response.GetResponseStream().Read(buff, cnt, bytesLeft);
						}
						string str = Encoding.UTF8.GetString(buff);
						jDoc = new JSONParser.JSONDoc(str);
						throw new SwarmException(jDoc.ToString(), ex);
					}
					else
					{
						TextReader str = new StreamReader(ex.Response.GetResponseStream(), Encoding.UTF8);
						jDoc = new JSONParser.JSONDoc(str);
						throw new SwarmException(jDoc.ToString());
					}
				}
				logger.Trace("Exception in SwarmServer.HttpPost: {0}", ex.Message);
				logger.Trace(ex.StackTrace);

				throw new SwarmException(ex.Message);
			}
			catch (Exception ex)
			{
				logger.Trace("Exception in SwarmServer.HttpPost: {0}", ex.Message);
				logger.Trace(ex.StackTrace);

				throw;
			}
		}
Exemplo n.º 5
0
		public JSONDoc HttpGet(string RequestUrl)
		{
			JSONDoc jDoc = null;

			try
			{
				HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(RequestUrl);
				SetBasicAuthHeader(req, credentials);
				req.ContentType = "application/x-www-form-urlencoded";
				req.Credentials = credentials;
				req.Method = "GET";

				WebResponse res = req.GetResponse();
				if (req.HaveResponse && (res.GetResponseStream() != null))
				{
					// Sometimes the stream reader 'stalls' when we try to tokenize while reading 
					//  the stream and only returns the partial result, so need to read the entire
					//  response stream before passing it to the JSON parser
					//TextReader str = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
					//jDoc = new JSONParser.JSONDoc(str);

					// read the entire response buffer into a string
					string str = string.Empty;
					if (res.ContentLength > 0)
					{
						// the easy way, we know how much we need to read
						byte[] buff;
						buff = new byte[res.ContentLength];
						int cnt = 0;
						while (cnt < (int)res.ContentLength)
						{
							int bytesLeft = (int)res.ContentLength - cnt;
							cnt += res.GetResponseStream().Read(buff, cnt, bytesLeft);
						}

						str = Encoding.UTF8.GetString(buff);
					}
					else
					{
						// we didn't get a length, so read the response in chunks and dynamically build the string
						// the easy way, we know how much we need to read
						byte[] buff = new byte[buffSize];

						StringBuilder sb = new StringBuilder(stringBuilderSize);
						int bytesRead = 1; // trick it first time through
						while (bytesRead > 0)
						{
							bytesRead = res.GetResponseStream().Read(buff, 0, buffSize);
							if (bytesRead > 0)
							{
								sb.Append(Encoding.UTF8.GetString(buff, 0, bytesRead));
							}
						}
						str = sb.ToString();
					}
					jDoc = new JSONParser.JSONDoc(str);
				}
				res.Close();

				return jDoc;
			}
			catch (WebException ex)
			{
				if ((ex.Response != null) && (ex.Response.GetResponseStream() != null))
				{
					if (ex.Response.ContentLength > 0)
					{
						// the easy way, we know how much we need to read
						byte[] buff;
						buff = new byte[ex.Response.ContentLength];
						int cnt = 0;
						while (cnt < (int)ex.Response.ContentLength)
						{
							int bytesLeft = (int)ex.Response.ContentLength - cnt;
							cnt += ex.Response.GetResponseStream().Read(buff, cnt, bytesLeft);
						}

						string str = Encoding.UTF8.GetString(buff);

						jDoc = new JSONParser.JSONDoc(str);

						throw new SwarmException(jDoc.ToString(), ex);
					}
					else
					{
						TextReader str = new StreamReader(ex.Response.GetResponseStream(), Encoding.UTF8);
						jDoc = new JSONParser.JSONDoc(str);

						throw new SwarmException(jDoc.ToString(), ex);
					}
				}
				logger.Trace("Exception in SwarmServer.HttpPost: {0}", ex.Message);
				logger.Trace(ex.StackTrace);

				throw new SwarmException(ex.Message, ex);
			}
			catch (Exception ex)
			{
				logger.Trace("Exception in SwarmServer.HttpPost: {0}", ex.Message);
				logger.Trace(ex.StackTrace);

				throw;
			}
		}