using System; using sharp.extensions; using System.Net; using sharp.webclient; using System.IO; using System.Collections.Generic; namespace sharp.json { public class JSONWebRequest { private static JSONParser jsonParser = new JSONParser(); public static JSON Call(string url){ return Call(url, null); } public static JSON Call(string url, JSON request) { return Call(url, request, null); } public static JSON Call(string url, JSON request, IDictionary headers) { HttpRequest req = new HttpRequest(url); if (request != null){ byte[] rbody = request.ToString().toBytes(); req.RequestStream.Write(rbody,0,rbody.Length); } if (headers != null) { foreach (string hname in headers.Keys) { req.setHeader(hname, headers[hname]); } } HttpResponse response = req.Send(); try { return jsonParser.Parse(response.ContentText); } catch (Exception e){ Console.WriteLine("JSONWebRequest could not parse response."); Console.WriteLine("Response was:"); Console.WriteLine(">-------------------------------------------"); Console.WriteLine(response.ContentText); Console.WriteLine("<-------------------------------------------"); throw e; } } } }