public async Task <IBuffer> download(string url, object extra) { AsyncHttpClient http = new AsyncHttpClient(); http.Url(url); if (extra != null) { //把相关信息传过去作防盗验证 var user = extra as User; http.Header("UserID", user.UserID); http.Header("Sex", user.Sex); http.Header("APPID", "1111"); http.Header("APPMK", "XXXXXXXXXXXXXXXX"); } var rsp = await http.Get(); return(rsp.getBuffer()); }
public AsyncHttpClient CreateHttpClient() { AsyncHttpClient client = new AsyncHttpClient(); var mHandler = new HttpClientHandler(); client .Header("Connection", "keep-alive") .Header("Keep-Alive", "600") .UserAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36") .Header("Accept-Encoding", "gzip,deflate,br") .Header("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4").AutomaticDecompression(DecompressionMethods.Deflate | DecompressionMethods.GZip) .AllowAutoRedirect(false).Cookies(cookieContainer) .ExpectContinue(false); //.Timeout(35000) Referer = "https://wx.qq.com/"; if (Referer != string.Empty) { client.Referer(Referer); client.Header("Origin", Referer); } return(client); }
private static async void doHttp(SdSource source, HttpMessage msg, __CacheBlock cache, HttpCallback callback) { var encoding = Encoding.GetEncoding(msg.config.encode()); AsyncHttpClient client = new AsyncHttpClient(); client.UserAgent(msg.config.ua()); client.Encoding(msg.config.encode()); foreach (String key in msg.header.Keys) { client.Header(key, msg.header[key]); } string newUrl = null; if (msg.url.IndexOf(" ") >= 0) { newUrl = Uri.EscapeUriString(msg.url); } else { newUrl = msg.url; } client.Url(newUrl); string temp = null; AsyncHttpResponse rsp = null; try { if ("post".Equals(msg.config.method)) { rsp = await client.Post(msg.form); } else { rsp = await client.Get(); } if (rsp.StatusCode == HttpStatusCode.OK) { source.setCookies(rsp.Cookies); temp = rsp.GetString(); if (string.IsNullOrEmpty(rsp.location) == false) { Uri uri = new Uri(msg.url); rsp.location = uri.Scheme + "://" + uri.Host + rsp.location; } } } catch (Exception ex) { Util.log(source, "HTTP", ex.Message); } if (temp == null) { if (cache == null || cache.value == null) { callback(-2, msg, null, rsp.location); } else { callback(1, msg, cache.value, rsp.location); } } else { callback(1, msg, temp, rsp.location); } }