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); }
/// <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); }
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); }