public virtual Func <string, WebContent> Getter(Content <Stream> content) { var graph = this.ThingGraph; var thing = this.Thing; WebContent = GetContentFromContent(content, GetUri(thing)); IsStreamOwner = WebContent.IsStreamOwner; Done = false; Func <string, WebContent> getter = (s) => { WebContent result = null; try { var request = new Uri(s); if (WebContent.Uri.AbsoluteUri == request.AbsoluteUri) { if (!WebContent.ContentIsEmpty) { result = WebContent; } else if (WebContent.ClearContentAfterServing) { if (GetUri(thing).AbsoluteUri == request.AbsoluteUri) { WebContent = GetContentFromThing(graph, thing); result = WebContent; } } } else { result = this.GetContentFromGraph(graph, thing, request); if (result == null) { // if not requesting the internal server, get content from the web if (request.Host != BaseUri.Host && request.Port != BaseUri.Port) { if (DoWebRequest) { result = new WebRequestContent(); } } } } } catch (Exception ex) { Trace.WriteLine("request denied:" + s); Debug.WriteLine(ex.Message + "\r\n" + ex.StackTrace); result = null; } finally { Done = true; } return(result); }; //); return(getter); }
public string Post(string Url, WebRequestContent Content) { var Request = NewRequest(Url, Content); using (var RequestStream = Request.GetRequestStream()) { RequestStream.Write(Content.Data, 0, Content.Length); using (var Response = Request.GetResponse()) using (var Reader = new StreamReader(Response.GetResponseStream())) return Reader.ReadToEnd(); } }
public HttpWebRequest NewRequest(string Url, WebRequestContent Content) { var Request = (HttpWebRequest) System.Net.WebRequest.Create(Url); Request.PreAuthenticate = true; Request.AllowWriteStreamBuffering = true; Request.ContentType = string.Format("multipart/form-data; boundary={0}", Content.Boundary); Request.Method = "POST"; Request.ContentLength = Content.Length; return Request; }