Beispiel #1
0
        public void BeginGetIncludeInfoTest()
        {
            IBaiduIncludeInfo info1 = null, info2 = null;

            using (CountdownEvent ce = new CountdownEvent(2)) {
                BaiduUtility.BeginGetIncludeInfo("www.beianm.com", (ar) => {
                    try {
                        info1 = BaiduUtility.EndGetIncludeInfo(ar);
                    } finally {
                        ce.Signal();
                    }
                }, null);
                BaiduUtility.BeginGetIncludeInfo("www.xphter.com", (ar) => {
                    try {
                        info2 = BaiduUtility.EndGetIncludeInfo(ar);
                    } finally {
                        ce.Signal();
                    }
                }, null);
                ce.Wait();
            }

            Assert.IsTrue(info1.IndexCount > 0);
            Assert.IsTrue(info1.IncludeCount > 0);
            Assert.IsTrue(info2.IndexCount > 0);
            Assert.IsTrue(info2.IncludeCount > 0);
        }
Beispiel #2
0
        /// <summary>
        /// Starts an asynchronous operation to get include info.
        /// </summary>
        /// <param name="domainName"></param>
        /// <param name="callback"></param>
        /// <param name="userState"></param>
        /// <returns></returns>
        public static IAsyncResult BeginGetIncludeInfo(string domainName, AsyncCallback callback, object userState)
        {
            HttpWebRequest request = CreateNormalRequest(GetIncludeInfoQueryUri(domainName));
            AsyncResult <IBaiduIncludeInfo> result = new AsyncResult <IBaiduIncludeInfo>(callback, userState);

            NetworkRequestAsyncTimeout.RegisterRequest(request.BeginGetResponse((ar) => {
                IBaiduIncludeInfo info = null;
                Exception error        = null;
                byte[] buffer          = g_bufferManager.TakeBuffer(BUFFER_SIZE);

                try {
                    string content = null;
                    using (HttpWebResponse response = (HttpWebResponse)((HttpWebRequest)ar.AsyncState).EndGetResponse(ar)) {
                        content = response.GetResponseString(buffer);
                    }

                    info = new IncludeInfo {
                        IncludeCount = ParseIncludeCount(content),
                        IndexCount   = ParseIndexCount(content),
                    };
                } catch (Exception ex) {
                    error = ex;
                } finally {
                    g_bufferManager.ReturnBuffer(buffer);
                }

                result.MarkCompleted(error, false, info);
            }, request), request, TIMEOUT);

            return(result);
        }
Beispiel #3
0
        public void GetIncludeInfoTest()
        {
            IBaiduIncludeInfo info1 = BaiduUtility.GetIncludeInfo("www.beianm.com");
            IBaiduIncludeInfo info2 = BaiduUtility.GetIncludeInfo("www.xphter.com");

            Assert.IsTrue(info1.IndexCount > 0);
            Assert.IsTrue(info1.IncludeCount > 0);
            Assert.IsTrue(info2.IndexCount > 0);
            Assert.IsTrue(info2.IncludeCount > 0);
        }