public async Task 测试302跳转() { var www = new Httpdoer("http://i.baidu.com/"); www.AutoRedirect = false; var result = www.Send(); Assert.AreEqual(HttpStatusCode.Redirect, result.StatusCode); www = new Httpdoer("http://i.baidu.com/"); www.AutoRedirect = true; result = www.Send(); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); www = new Httpdoer("http://i.baidu.com/"); www.AutoRedirect = false; result = await www.SendAsync(); Assert.AreEqual(HttpStatusCode.Redirect, result.StatusCode); www = new Httpdoer("http://i.baidu.com/"); www.AutoRedirect = true; result = await www.SendAsync(); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); }
public async Task 测试异步模式下的Cookie_ApplicationCache() { var www = new Httpdoer("http://www.baidu.com/"); www.CookieMode = HttpCookieMode.ApplicationCache; var res = await www.SendAsync(); Assert.IsTrue(www.Cookies == HttpRequest.LocalCookies); Assert.IsTrue(www.Cookies.Count > 0); Assert.IsTrue(res.Cookies.Count > 0); }
public async Task 测试异步模式下的Cookie_None() { var www = new Httpdoer("http://www.baidu.com/"); www.CookieMode = HttpCookieMode.None; var res = await www.SendAsync(); Assert.IsTrue(HttpRequest.LocalCookies.Count == 0); Assert.IsTrue(www.Cookies == null); Assert.IsTrue(res.Cookies == null); }
public async Task 测试异步模式下的Cookie_UserCustom() { var www = new Httpdoer("http://www.baidu.com/"); www.CookieMode = HttpCookieMode.UserCustom; var res = await www.SendAsync(); Assert.IsTrue(HttpRequest.LocalCookies.Count == 0); Assert.IsTrue(www.Cookies != HttpRequest.LocalCookies); Assert.IsTrue(www.Cookies.Count > 0); Assert.IsTrue(res.Cookies.Count > 0); }
public async Task 设置Method() { var www = new Httpdoer("www.baidu.com"); var result = www.Send(); Assert.IsNull(result.Exception); www = new Httpdoer("www.baidu.com"); result = await www.SendAsync(); Assert.IsNull(result.Exception); www = new Httpdoer("www.baidu.com"); www.Body.Add("name", "value"); Assert.AreEqual(HttpRequestMethod.Post, www.Method); Assert.AreEqual("POST", www.HttpMethod); Assert.IsNotNull(www.Body.ToString()); Assert.AreEqual(HttpContentType.Form, www.Body.ContentType); }
public async Task 测试异步模式下的Cookie_CustomOrCache() { var www = new Httpdoer("http://www.baidu.com/"); www.CookieMode = HttpCookieMode.UserCustom; var res = await www.SendAsync(); Assert.IsTrue(HttpRequest.LocalCookies.Count == 0); Assert.IsTrue(www.Cookies != HttpRequest.LocalCookies); Assert.IsTrue(www.Cookies.Count > 0); Assert.IsTrue(res.Cookies.Count > 0); var count = www.Cookies.Count; www = new Httpdoer("http://www.baidu.com/"); www.CookieMode = HttpCookieMode.CustomOrCache; HttpRequest.LocalCookies.Add(new Cookie("aa", "11", "/", "www.baidu.com")); res = await www.SendAsync(); Assert.IsTrue(www.Cookies != HttpRequest.LocalCookies); Assert.IsTrue(www.Cookies.Count == count + 1); Assert.IsTrue(res.Cookies.Count > 0); }
protected virtual async Task SendRequest() { await Task.Delay(1); rtxtLogs.Clear(); var request = new Httpdoer(txtURL.Text) { UseCookies = true, Timeout = TimeSpan.FromSeconds(decimal.ToDouble(numTimeout.Value)), Proxy = null, }; request.Trackings.Add(new BuibuiTracking()); //设置Cookie if (ckbKeepCookie.Checked) { request.Cookies = _cookies; } request.Headers.KeepAlive = ckbKeepAlive.Checked; request.Logger.Listeners.Add(new BuibuiListener(rtxtLogs)); request.HttpMethod = cbbHttpMethod.Text; if (!string.IsNullOrWhiteSpace(cbbContentType.Text)) { request.Body.ContentType = cbbContentType.Text; } //写入参数 WriteParams(request); //var response = request.Send(); var response = await request.SendAsync(); //返回正文 rtxtResponseBody.Tag = response?.Body?.ResponseBody; //设置编码 var encoding = response?.Body?.ContentType.Charset?.WebName; if (encoding == cbbEncoding.Text) { cbbEncoding_SelectedIndexChanged(cbbEncoding, EventArgs.Empty); } else { cbbEncoding.Text = response?.Body?.ContentType.Charset?.WebName; } txtRequestRaw.Text = response?.RequestData.Raw; txtResponseRaw.Text = response?.ResponseRaw; //显示视图 if (response?.Body?.ContentType.Format?.ToLowerInvariant() == "json") { ShowJson(); } else { ShowView(); } //返回头 ShowResponseHeaders(response); //显示Cookie ShowResponseCookie(response); if (response.Cookies != null) { _cookies.Add(response.Cookies); } if (response.Exception != null) { request.Error(response.Exception); SaveHistory(); throw new NotImplementedException(response.Exception.Message, response.Exception); } SaveHistory(); }