示例#1
0
 protected Linkback(IHttpWebRequestImplementation implementation)
 {
     this.HttpWebRequestAbstraction = new HttpWebRequestAbstraction(implementation);
 }
示例#2
0
        public void LinkbackSendParameters_SetupRequestForTrackback_Url_Null_Throws_InvalidOperationException()
        {
            var parameters = new LinkbackSendParameters();

            var requestImplementation = new Mock<IHttpWebRequestImplementation>();
            var request = new HttpWebRequestAbstraction(requestImplementation.Object);

            Assert.Throws<InvalidOperationException>(() =>
            {
                parameters.SetupRequestForTrackback(request);
            });
        }
示例#3
0
 protected abstract void SetupRequest(HttpWebRequestAbstraction request, LinkbackSendParameters parameters);
示例#4
0
        public void LinkbackSendParameters_SetupRequestForPingback_TargetUrl_Null_Throws_InvalidOperationException()
        {
            var parameters = new LinkbackSendParameters();

            parameters.SourceUrl = new Uri("http://localhost");
            parameters.TargetUrl = null;

            var requestImplementation = new Mock<IHttpWebRequestImplementation>();
            var request = new HttpWebRequestAbstraction(requestImplementation.Object);

            Assert.Throws<InvalidOperationException>(() =>
            {
                parameters.SetupRequestForPingback(request);
            });
        }
        public void SetupRequestForPingback(HttpWebRequestAbstraction request)
        {
            if (SourceUrl == null)
            {
                throw new InvalidOperationException("SourceUrl is null");
            }

            if (TargetUrl == null)
            {
                throw new InvalidOperationException("TargetUrl is null");
            }

            string post_content = String.Format(CultureInfo.InvariantCulture, "<?xml version=\"1.0\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>{0}</string></value></param><param><value><string>{1}</string></value></param></params></methodCall>", SourceUrl.AbsoluteUri, TargetUrl.AbsoluteUri);
            byte[] post_bytes = new UTF8Encoding().GetBytes(post_content);

            request.Method = "POST";
            request.ContentType = "text/xml";
            request.ContentLength = post_bytes.Length;

            using (Stream writeStream = request.GetRequestStream())
            {
                writeStream.Write(post_bytes, 0, post_bytes.Length);
            }
        }
        public void SetupRequestForTrackback(HttpWebRequestAbstraction request)
        {
            string post_content = BuildPostContent();
            byte[] post_bytes = new UTF8Encoding().GetBytes(post_content);

            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = post_bytes.Length;

            using (Stream writeStream = request.GetRequestStream())
            {
                writeStream.Write(post_bytes, 0, post_bytes.Length);
            }
        }
示例#7
0
 protected override void SetupRequest(HttpWebRequestAbstraction request, LinkbackSendParameters parameters)
 {
     parameters.SetupRequestForPingback(request);
 }