C# HttpWebRequest发送GET请求的问题

ServicePointManager.DefaultConnectionLimit = 500;
ServicePointManager.Expect100Continue = true;
ServicePointManager.CheckCertificateRevocationList = false;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
string url = @"https://login.wx2.qq.com/jslogin?appid=wx782c26e4c19acffb";
HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(url);
wRequest.Method = "GET";
wRequest.ContentType = "text/javascript";
wRequest.CookieContainer = CookiesContainer; //启用cookie
if (CookiesContainer == null)
{
CookiesContainer = new CookieContainer();
}
WebResponse wResponse = wRequest.GetResponse();
Stream stream = wResponse.GetResponseStream();
StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);

        string str = reader.ReadToEnd();   //url返回的值  
        MessageBox.Show(str);
        reader.Close();
        wResponse.Close();
 上面代码为什么在部分电脑上超时,手动打开网页没问题,求思路!





3个回答

添加using System.Security.Cryptography.X509Certificates;空间,然后添加下面的代码

     public static bool SecurityValidate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
        return true;//直接确认,不然打不开,会出现超时错误
    }


////////////添加这句
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(SecurityValidate);
//////////////
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
HHDJSDNNM
HHDJSDNNM 兄弟这个办法我在提问之前也做了测试,问题依旧
2 年多之前 回复

超时有很多因素导致的,比如网络的原因,有时候网络顺畅就不会超时,网络不顺畅就超时。用一个Stopwatch 记录一下每一步所花的时间,看看是哪一段代码所花的时间较长。针对这段代码进行优化查看。

HHDJSDNNM
HHDJSDNNM 网络没问题,手动打开就很正常
2 年多之前 回复

我刚才用VB6的INET控件访问,在故障电脑上也很正常,代码修改后问题依旧,而且概率不低,我这边测试了8台电脑,不同的网络环境,有4台电脑异常!

  ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(SecurityValidate);
            //////////////
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
            ServicePointManager.DefaultConnectionLimit = 500;
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.CheckCertificateRevocationList = false;

            System.Net.ServicePointManager.Expect100Continue = false;
            string url = @"https://login.wx2.qq.com/jslogin?appid=wx782c26e4c19acffb";
            HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(url);
            wRequest.KeepAlive =true;
            wRequest.ProtocolVersion = HttpVersion.Version10;
            wRequest.Method = "GET";
            wRequest.ContentType = "text/javascript";
            wRequest.CookieContainer = CookiesContainer;  //启用cookie
            if (CookiesContainer == null)
            {
                CookiesContainer = new CookieContainer();
            }
            WebResponse wResponse = wRequest.GetResponse();
            Stream stream = wResponse.GetResponseStream();
            StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);

            string str = reader.ReadToEnd();   //url返回的值  
            MessageBox.Show(str);
            reader.Close();
            wResponse.Close();
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# HttpWebRequest delete请求
请问在请求或发送JSON数据的时候,有什么方法使用DELETE请求?MSDN上说HttpWebRequest只有GET和POST两种方法啊,但是我用DELETE方法成功了,但是第二次使用后,再使用GET请求就断开连接了,求大神解惑。
C# HttpWebRequest ,Post请求,有个cookie里面带了逗号
创建CookieContainer的时候 有个cookie里面带了逗号 cookie 类似Wed, 20 Dec 2017 05:46:34 GMT 这种日期的 我用get的访问别的接口是没问题的 这个接口必须post,然后一直提示会话过期
C#HttpWebRequest 模拟请求一个URL和在网站上直接输入这个URL返回的页面不一样
![网站返回页面](https://img-ask.csdn.net/upload/201505/23/1432345406_526347.png) ![程序返回页面](https://img-ask.csdn.net/upload/201505/23/1432345434_802513.png) 以上都是同一个URL请求返回的页面。为什么会出现这种情况,实在没有C币了求好心人帮助。 myRequest = (HttpWebRequest)WebRequest.Create(requestUrlString); myRequest.Method = "GET"; myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"; myRequest.CookieContainer = cookie; HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string tmp = reader.ReadToEnd(); 附上代码片段
C#连续三次get请求到百度首页,第三次时会提示请求超时,请问怎么解决?
提交请求的方法 public void GetCookieBaiDuId() { string baiduMainUrl = "http://www.baidu.com/"; HttpWebRequest req; req = (HttpWebRequest)WebRequest.Create(baiduMainUrl); req.MediaType = "GET"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); } 这个方法GetCookieBaiDuId()连续提交三次后就会请求超时 请了解这方面的帮忙解答下
C# get 请求一直超时。
问题: 访问的地址 如果是 localhost 的 就可以访问到。 如果是外网ip或者域名 就不行 比如 http://www.baidu.com。 因为这个代码 在多台机器上都能用 只有 现在正在调试的这台 不能用, 所以考虑 是不是机器哪里有什么设置之类的, 这台机器 是我从别人手里接过来的,并不知道 是不是有这样的设置。 请各位大大帮忙分析下。 另外说明, 如果用浏览器打开 是可以打开的。。。 首先 粘上异常: System.Net.WebException: 操作超时 在 System.Net.HttpWebRequest.GetResponse() 在 PcAlarmService.Service1.GetModel(String strUrl) 然后粘上 代码: ///<summary> ///向服务器发送请求 ///</summary> ///<param name="URL">请求地址</param> private string GetModel(string strUrl) { string strRet = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl); request.Timeout = 20000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); System.IO.Stream resStream = response.GetResponseStream(); Encoding encode = System.Text.Encoding.UTF8; StreamReader readStream = new StreamReader(resStream, encode); Char[] read = new Char[256]; int count = readStream.Read(read, 0, 256); while (count > 0) { String str = new String(read, 0, count); strRet = strRet + str; count = readStream.Read(read, 0, 256); } resStream.Close(); } catch (Exception e) { log.println(e.ToString() + "---" + e.Message); log.println(e.StackTrace); } return strRet; } 静待大大们的发言 在线等。
C# http get https://wx.qq.com 总是关闭连接的奇怪问题
最近在做一些微信相关的东西,使用C#遇到了一个非常诡异的问题。 请教大神。共同探讨一下原因。 先贴代码 ``` static void Main(string[] args) { while (true) { HttpGet(); } Console.Read(); } public static string HttpGet() { string html = string.Empty; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wx.qq.com"); try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (Stream stream = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(stream)) { html = reader.ReadToEnd(); reader.Close(); } stream.Flush(); stream.Close(); } response.Close(); } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } finally { request.Abort(); request = null; GC.Collect(); Thread.Sleep(15000); } return html; } ``` 关键的问题就是,连续两次https的keep-alive访问wx.qq.com,如果第二次请求之前sleep15秒钟,那第二次请求一定会报基础连接被关闭的异常。 然后如果打开httpanalyzer或者fidder抓包工具,那就没有这个问题。 stackoverflow有人说fidder相当于一个代理,会有一套自己的http连接池的管理办法。 不知道c#能不能实现类似的功能,或者是我修改某些参数就能解决这个异常。 其实就是实际做了点微信相关的东西,遇到了一些问题,有时候两次发到wx.qq.com的请求中间出现网络问题,间隔一会之后,后面的所有请求都会报错,非常诡异,求大神帮忙解答这个问题,感激不尽
HttpWebRequest用GET方式请求数据时,总是提示无权访问该页面
写了一个客户端软件向某个网站页面发起查询请求并获取返回的JSON数据,函数代码如下: ``` public string doGetRequest(string cookie, string url) { Uri uri = new Uri(url); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "GET"; request.AllowAutoRedirect = false; request.Accept = "application/json"; request.ContentType = "application/x-www-form-urlencoded"; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"; if (cookie.Length > 0) { request.Headers.Add("Cookie", cookie); } HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { response = (HttpWebResponse)ex.Response; StreamReader sr = new StreamReader(response.GetResponseStream()); MessageBox.Show(sr.ReadToEnd()); } if (response.StatusCode != HttpStatusCode.OK) { MessageBox.Show("服务器返回请求错误!"); return ""; } string encoding = response.ContentEncoding; if (encoding == null || encoding.Length < 1) { encoding = "UTF-8"; //默认编码 } StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); string result = reader.ReadToEnd(); //释放资源 response.Close(); reader.Close(); return result; } ``` 调用该函数时传入事先获取的cookie和请求url,url的值如下(网站域名用*省略): http://*********/tcatsds/tcaTsdApprover/searchAllTcatsd?APPLYNO=P20190098290 可是程序总是报错,说GetResponse返回502错误,查看返回的详细信息如下: ![图片说明](https://img-ask.csdn.net/upload/201902/08/1549596142_651828.jpg) 从返回的详细信息上看是无权访问该页面,但是我如果在浏览器中直接输入该url,是能看到返回的JSON数据的,实在想不通为什么,哪位大神能指导一下该怎么办?
远程服务器返回错误(405),不允许的方法。
使用c#后台代码,发送get请求想要获取json. 服务是java项目,使用tomcat发布的。 ``` string serviceAddress = requestUrl; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); request.Method = "get"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; ```
C# winform程序实现JAVA josn 请求接
第一次写winfrom 不知道怎么写,以下是给的接口说明 HTTP请求方式:GET http://ip:port/lanshuijsdService/3.0/hts/queryCyr?param_key=?&secret_key=? 1) 注意: 以JSON格式传入输入参数 1) 请求参数 参数名称 类型 必需 描述 param_key 字符串 是 输入参数值 secret_key 字符串 是 Md5摘要信息 Param_key中包含的输入json中的字段描述如下: 参数名称 类型 必需 描述 meraccount string 是 商户账户(321000000) method string 是 API的资源操作方法名(queryCyr) timestamp number 是 用户发起请求时的unix时间戳。 v number 是 API版本号,默认使用最高版本(1.0)。 ⦁ 请求示例: 将param_key内的json中元素按照参数名排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串后进行MD5,以形成secret_key值 param_key值=RSA(URLEncoder ({”name2”:”value2”, “name1”:”value1”,”name3”:”value3”},”UTF-8”)) secret_key值= URLEncoder (md5(name1=value1& name2=value2&name3=value3) ,”UTF-8”) ⦁ 签名算法 服务API使用的签名算法如下: ⦁ 获取请求的HTTP method; ⦁ 获取请求的URL,包括host和scheme,但不包括query_string的部分 ⦁ 将所有参数(包括GET或POST的参数,但不包含签名字段)格式化为“key=value”格式,如“k1=v1”、“k2=v2”、“k3=v3”; ⦁ 将格式化好的参数键值对以字典序升序排列后,拼接在一起,如“k1=v1&k2=v2&k3=v3”,并将HTTP method和URL按顺序拼接在这个字符串前面; ⦁ 在拼接好的字符串末尾追加上应用的secret_key,并进行urlencode形成base_string; ⦁ 上述字符串的MD5值即为签名的值: sign= urlencode(MD5(k1=v1&k2=v2&k3=v3)); ⦁ 安全加密 为了确保敏感数据的可靠传输。必须对传输数据使用RSA的公钥进行非对称加密,私钥由服务提供方妥善保管,公钥由客户端经过身份验证之后获得。安全加密算法如下: RSA(URLEncoder ({”name2”:”value2”, “name1”:”value1”,”name3”:”value3”},”UTF-8”)) 分配的RSA公钥如下: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsoGCMo/XE+fNlLQBLK4VBYe8pVZe71Eb5fZOxd213vvshmWA/9c+vSM/uUAcD/W/It+xnJE1TECCTbV6uCqgfmrztwe2OQS2kGhLPGIYfo9ha2NufghUNAHAB9M0m1lp7y2m8T27iPhy 下面我写的代码: string strURL = "http://192.168.200.207:8088/lsjsdService/3.0/hts/queryJsd?param_key="; string md5 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GyRRxv35xuamvvnzQDOerH3yrrCLnJ6bQIDAQAB"; string pk="{\"val\":\"200005719465\",\"scode\":\"321000006\",\"date\":\"20180625\",\"flag\":\"0\",\"meraccount\":\"321000000\",\"method\":\"queryJsd\",\"v\":\"3.0\",\"timestamp\":\"20180707\",}"; string param_key = ToUrlEncode(pk); string sk = "var=200005719465&scode=321000006&date=20180625&flag=0&meraccount=321000000&method=queryJsd&v=3.0&timestamp=20180707"; string secret_key = sign(sk, md5, "UTF-8"); strURL = "http://192.168.200.207:8088/lsjsdService/3.0/hts/queryJsd?param_key=" + param_key + "&secret_key=" + secret_key; string h = HttpApi(strURL, "{}", "get"); public static string ToUrlEncode(string strCode) { StringBuilder sb = new StringBuilder(); byte[] byStr = System.Text.Encoding.UTF8.GetBytes(strCode); //默认是System.Text.Encoding.Default.GetBytes(str) System.Text.RegularExpressions.Regex regKey = new System.Text.RegularExpressions.Regex("^[A-Za-z0-9]+$"); for (int i = 0; i < byStr.Length; i++) { string strBy = Convert.ToChar(byStr[i]).ToString(); if (regKey.IsMatch(strBy)) { //是字母或者数字则不进行转换 sb.Append(strBy); } else { sb.Append(@"%" + Convert.ToString(byStr[i], 16)); } } return (sb.ToString()); } public static string sign(string content, string privateKey, string input_charset) { Encoding code = Encoding.GetEncoding(input_charset); byte[] Data = code.GetBytes(content); RSACryptoServiceProvider rsa = DecodePemPrivateKey(privateKey); SHA1 sh = new SHA1CryptoServiceProvider(); byte[] signData = rsa.SignData(Data, sh); return Convert.ToBase64String(signData); } /// <summary> /// 调用api返回json /// </summary> /// <param name="url">api地址</param> /// <param name="jsonstr">接收参数</param> /// <param name="type">类型</param> /// <returns></returns> public static string HttpApi(string url, string jsonstr, string type) { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);//webrequest请求api地址 request.Accept = "text/html,application/xhtml+xml,*/*"; request.ContentType = "application/json"; request.Method = type.ToUpper().ToString();//get或者post byte[] buffer = encoding.GetBytes(jsonstr); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { return reader.ReadToEnd(); } } 文档里说的:param_key,secret_key 这两个值我都不知道我转换对没?以上我拼接的字符串正确吗?sign方法老是报错 ![图片说明](https://img-ask.csdn.net/upload/201807/08/1531032895_957209.png) 请大神帮忙指教下。
c#模拟登陆 返回500错误
我想用c#模拟登陆一个网站,然后再对网站进行操作,post参数也很简单,但是为什么返回500错误呢? ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414065_362884.jpg) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414075_702532.png) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414082_979129.jpg) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414093_528164.png) ![图片说明](https://img-ask.csdn.net/upload/201603/31/1459414100_67423.png) ``` using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading; namespace emulateLoginBaidu { class HTMLHelper { public static CookieContainer GetCooKie(string loginUrl, string postdata, HttpHeader header) { HttpWebRequest request = null; HttpWebResponse response = null; try { CookieContainer cc = new CookieContainer(); request = (HttpWebRequest)WebRequest.Create(loginUrl); request.Method = header.method; request.ContentType = header.contentType; byte[] postdatabyte = Encoding.UTF8.GetBytes(postdata); request.ContentLength = postdatabyte.Length; request.AllowAutoRedirect = false; request.CookieContainer = cc; request.KeepAlive = true; //提交请求 Stream stream; stream = request.GetRequestStream(); stream.Write(postdatabyte, 0, postdatabyte.Length); stream.Close(); //接收响应 response = (HttpWebResponse)request.GetResponse(); response.Cookies = request.CookieContainer.GetCookies(request.RequestUri); CookieCollection cook = response.Cookies; //Cookie字符串格式 string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri); return cc; } catch (Exception ex) { throw ex; } } /// <summary> /// 获取html /// </summary> /// <param name="getUrl"></param> /// <param name="cookieContainer"></param> /// <param name="header"></param> /// <returns></returns> public static string GetHtml(string getUrl, CookieContainer cookieContainer, HttpHeader header) { Thread.Sleep(1000); HttpWebRequest httpWebRequest = null; HttpWebResponse httpWebResponse = null; try { httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(getUrl); httpWebRequest.CookieContainer = cookieContainer; httpWebRequest.ContentType = header.contentType; httpWebRequest.ServicePoint.ConnectionLimit = header.maxTry; httpWebRequest.Referer = getUrl; httpWebRequest.Accept = header.accept; httpWebRequest.UserAgent = header.userAgent; httpWebRequest.Method = "GET"; httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); Stream responseStream = httpWebResponse.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8); string html = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); httpWebRequest.Abort(); httpWebResponse.Close(); return html; } catch (Exception e) { if (httpWebRequest != null) httpWebRequest.Abort(); if (httpWebResponse != null) httpWebResponse.Close(); return string.Empty; } } } public class HttpHeader { public string contentType { get; set; } public string accept { get; set; } public string userAgent { get; set; } public string method { get; set; } public int maxTry { get; set; } } } ``` 测试代码: ``` try { HttpHeader header = new HttpHeader(); header.accept = @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; header.contentType = "application/x-www-form-urlencoded"; header.method = "POST"; header.userAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"; header.maxTry = 300; CookieContainer cookieContainer = new CookieContainer(); cookieContainer = HTMLHelper.GetCooKie("https://www.wish.com/api/email-login", "email=oxvbgzo66627404%40163.com&password=ai49425&_buckets=&_experiments=", header); string html = HTMLHelper.GetHtml("https://www.wish.com", cookieContainer, header); MessageBox.Show(html); } catch (Exception ee) { MessageBox.Show(ee.Message); } ```
发送http请求返回{"retcode":103,"errmsg":""}
我模仿一个QQ登录的按钮功能 为什么返回的{"retcode":103,"errmsg":""} 代码如下: try { //发送请求地址 string url2 = ptsig; string strHtmlContent2 = "";//接收返回数据 HttpWebRequest webRequest2 = WebRequest.Create(url2) as HttpWebRequest;//发送请求 webRequest2.Method = "GET";//请求方法 webRequest2.Referer = "http://d.web2.qq.com/proxy.html";//页面链接 webRequest2.ContentType = "application/x-www-form-urlencoded";//内容类型 //webRequest2.Timeout = 2000;//响应时间 webRequest2.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";//客户端浏览器的原始用户代理信息 webRequest2.CookieContainer = cookies;//获取cookie HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();//获得服务器响应对象 Stream resStream2 = response2.GetResponseStream();//转成流对象 StreamReader sr2 = new StreamReader(resStream2, Encoding.UTF8);//创建只读流对象 strHtmlContent2 = sr2.ReadToEnd(); response2.Close();//关闭流对象 webRequest2.Abort();//关闭请求 } catch (Exception e) { Msg = "qq:" + _qqno + "登陆" + e.Message; return false; } try { //发送请求地址 string url2 = "http://d.web2.qq.com/channel/login2"; string strHtmlContent2 = "";//接收返回数据 HttpWebRequest webRequest2 = WebRequest.Create(url2) as HttpWebRequest;//发送请求 webRequest2.Method = "POST";//请求方法 //webRequest2.Referer = "http://d.web2.qq.com/proxy.html";//页面链接 webRequest2.Referer = "http://d.web2.qq.com/proxy.html?v=20110331002&callback=1&id=2"; webRequest2.ContentType = "application/x-www-form-urlencoded";//内容类型 //webRequest2.Timeout = 2000;//响应时间 webRequest2.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";//客户端浏览器的原始用户代理信息 webRequest2.CookieContainer = cookies;//获取cookie //上传数据 string postData = "r={\"status\":\"online\",\"ptwebqq\":\"" + ptwebqq + "\",\"passwd_sig\":\"\",\"clientid\":\"" + clientid + "\",\"psessionid\":null}"; // Encode the data byte[] encodedBytes = Encoding.UTF8.GetBytes(postData);//转成二进制数组 webRequest2.ContentLength = encodedBytes.Length;//字节数 // Write encoded data into request stream Stream requestStream = webRequest2.GetRequestStream();//转成流对象 requestStream.Write(encodedBytes, 0, encodedBytes.Length); requestStream.Close();//关闭流并释放资源 HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();//获得服务器响应对象 Stream resStream2 = response2.GetResponseStream();//转成流对象 StreamReader sr2 = new StreamReader(resStream2, Encoding.UTF8);//创建只读流对象 strHtmlContent2 = sr2.ReadToEnd(); response2.Close();//关闭流 webRequest2.Abort();//关闭请求 if (strHtmlContent2.IndexOf("vfwebqq") > -1) { //获取第二次登录用户进行QQ号的操作 vfwebqq = new Regex("vfwebqq\":\"[^\"]+").Match(strHtmlContent2).Value.Replace("vfwebqq\":\"", ""); psessionid = new Regex("psessionid\":\"[^\"]+").Match(strHtmlContent2).Value.Replace("psessionid\":\"", ""); Msg = "qq:" + _qqno + "登陆webqq成功"; return true; } else { Msg = "qq:" + _qqno + "登陆受限"; return false; } } catch (Exception e) { Msg = "qq:" + _qqno + "登陆" + e.Message; return false; }
cookiecontainer问题,折腾一天了求帮助谢谢
我把httpwebresponse.cokies添加add()到cookiecontaoner里,然后遍历出来,里面的cookie不全(还就是关键的几个cookie没在),然后我又直接遍历httpwebresponse.cokies,里面的cookie又全在,请问下这是怎么回事?? ``` /// <summary>   /// 通过get方式请求页面,传递一个实例化的cookieContainer   /// </summary>   /// <param name="postUrl"></param>   /// <param name="cookie"></param>   /// <returns></returns>   public static ArrayList GetHtmlData(string postUrl, CookieContainer cookie)   {       HttpWebRequest request;       HttpWebResponse response;       ArrayList list = new ArrayList();       request = WebRequest.Create(postUrl) as HttpWebRequest;       request.Method = "GET";       request.UserAgent = "Mozilla/4.0";       request.CookieContainer = cookie;       request.KeepAlive = true;          request.CookieContainer = cookie;       try       {           //获取服务器返回的资源           using (response = (HttpWebResponse)request.GetResponse())           {               using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default))               {                   cookie.Add(response.Cookies);                   //保存Cookies                   list.Add(cookie);                   list.Add(reader.ReadToEnd());                   list.Add(Guid.NewGuid().ToString());//图片名               }           }       }       return list; } ```
远程服务器返回错误: (401) 未经授权
c# 模拟登陆带验证码网站,思路是先请求验证码并记录cookie,登陆网站(请求的cookie用请求验证码保存的cookie),始终不能成功,提示未经授权。 请求验证码代码如下: public static void GetCheckCode(string url, string path) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.ServicePoint.Expect100Continue = false; req.Method = "GET"; req.KeepAlive = true; req.ContentType = "image/png"; req.CookieContainer = new CookieContainer(); HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); theCC = req.CookieContainer; System.IO.Stream stream = null; try { // 以字符流的方式读取HTTP响应 stream = rsp.GetResponseStream(); System.Drawing.Image.FromStream(stream).Save(path); } finally { // 释放资源 if (stream != null) stream.Close(); if (rsp != null) rsp.Close(); } } 登陆主要代码如下: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); //配置请求header req.Headers.Add(HttpRequestHeader.AcceptCharset, "GBK,utf-8;q=0.7,*;q=0.3"); req.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate,sdch"); req.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8"); req.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; req.KeepAlive = true; req.Referer = referer; req.Headers.Add(HttpRequestHeader.CacheControl, "max-age=0"); req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.5 Safari/534.7"; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.AllowAutoRedirect = true; //设置cookieContainer用来接收cookie req.CookieContainer = theCC; //返回请求 res = (HttpWebResponse)req.GetResponse();
采集网页返回无数据,求解决方案
使用C#采集网页:http://search.10jqka.com.cn/stockpick/search?typed=1&preParams=&ts=1&f=1&qs=result_rewrite&selfsectsn=&querytype=stock&searchfilter=&tid=stockpick&w=%E7%AE%80%E7%A7%B0%E5%8F%98%E5%8A%A8%E6%97%A5%E6%98%AF2010%E5%B9%B4%E4%BB%A5%E6%9D%A5&queryarea= 原来可以返回带数据的html,可从html中采集token值 但现在只能返回: ``` “<html><body> <script src="//s.thsi.cn/js/chameleon/chameleon.min.1519305.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> window.location.href="http://search.10jqka.com.cn/stockpick/search?typed=1&preParams=&ts=1&f=1&qs=result_rewrite&selfsectsn=&querytype=stock&searchfilter=&tid=stockpick&w=%E7%AE%80%E7%A7%B0%E5%8F%98%E5%8A%A8%E6%97%A5%E6%98%AF2010%E5%B9%B4%E4%BB%A5%E6%9D%A5&queryarea="; </script> </body></html>” 请问该问题怎么解决? 以下是我使用的方法,另外使用System.Net.WebClient方法返回为空。 public string GetMoths(string url, string WebCodeStr){ Encoding WebCode = Encoding.GetEncoding(WebCodeStr); System.GC.Collect(); // 避免操作超时 HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create(@url); System.Net.ServicePointManager.DefaultConnectionLimit = 200; wReq.KeepAlive = false; wReq.UserAgent = @"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50215;)"; wReq.Method = "GET"; // HttpWebRequest.Method 属性 获取或设置请求的方法。 wReq.Timeout = 30000; //设置页面超时时间为30秒 HttpWebResponse wResp = null; try { wResp = (HttpWebResponse)wReq.GetResponse(); } catch (WebException ex) { var e1=ex; return null; } // Stream respStream = wResp.GetResponseStream(); //判断网页编码,如果判断编码和读取流不放在一个方法,使用StreamReader会出现无法读取流的错误 StreamReader reader = new StreamReader(respStream, WebCode); string strWebHtml = reader.ReadToEnd(); // 从流的当前位置到末尾读取流。 respStream.Close();reader.Close();reader.Dispose(); if (wReq != null) { wReq.Abort(); wReq = null; } if (wResp != null) { wResp.Close(); wResp.Dispose(); wResp = null;} return strWebHtml; } ```
模拟登录后访问,CookieContainer访问时需要变更的问题。
模拟登录后访问,CookieContainer访问时需要变更的问题。 用C# 做一个模拟 登录网站 访问页面的程序。原本 向被访网站提交post相关 用户密码后,把cookie保存到CookieContainer中,再访问网站页面没问题。后因被访页面 多了一个写入和读取cookie的操作,原container中的cookie内容,在访问中无法变更。导致无法访问 登录后的内容。 不知道我表达的,是否清楚。 代码大致是这样的。 如果登录后保存的cookieContainer,在浏览页面时再次修改或添加,应该就能通过了。 现在情况是,只用登录后保存container去访问被页面,因为被访页面又写入和读取cookie,原container无法变更,而导致浏览页面失败。本人菜鸟,请老师指教,最好有代码了。 比如被访页面加了这个写入和读取cookie的代码。原container就读取失败了。 Response.Cookies["Usert"]["tt"] = "ok"; if (Request.Cookies["Usert"]["tt"] == "ok") { 通过; } else { 失改; } protected void Button_Cai_Click(object sender, System.EventArgs e) { string indata = "username=aabbi&password=123"; string outdata = ""; CookieContainer myCookieContainer = new CookieContainer(); //新建一个CookieContainer来存放Cookie集合 HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.xxx.com/login.php?c=login"); //新建一个HttpWebRequest myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; myHttpWebRequest.ContentLength = indata.Length; myHttpWebRequest.Method = "POST"; // myHttpWebRequest.KeepAlive = false;//--- myHttpWebRequest.CookieContainer = myCookieContainer; //设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer Stream myRequestStream = myHttpWebRequest.GetRequestStream(); StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312")); myStreamWriter.Write(indata); //把数据写入HttpWebRequest的Request流 myStreamWriter.Close(); myRequestStream.Close(); //关闭打开对象 HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); //新建一个HttpWebResponse myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); //获取一个包含url的Cookie集合的CookieCollection Stream myResponseStream = myHttpWebResponse.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312")); outdata = myStreamReader.ReadToEnd(); //把数据从HttpWebResponse的Response流中读出 myStreamReader.Close(); myResponseStream.Close(); AddCompNew(i.ToString(), myCookieContainer); Download("http://www.xxx.com/view/123.htm",myCookieContainer); } public static string Download(string URL, CookieContainer myCookieContainer)//UTF-8 gb2312 { Stream strmPage = null; StreamReader srPage = null; string HTML = null; try { HttpWebRequest wrqPage = (HttpWebRequest)WebRequest.Create(URL);//根据制定的URL字符构造一个网络请求 // wrqPage.UserAgent = "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1)";//设定UserAgent的属性 // wrqPage.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)";//设定UserAgent的属性 wrqPage.Method = "get"; wrqPage.CookieContainer = myCookieContainer;//* WebResponse wrpPage = wrqPage.GetResponse();//获取网络相应 strmPage = wrpPage.GetResponseStream();//获取网络相应的数据流 //srPage = new StreamReader(strmPage, Encoding.GetEncoding("gb2312")); //将获取的数据流构造为一个StreamReader,用来读取流的内容 srPage = new StreamReader(strmPage, System.Text.Encoding.GetEncoding("gb2312"));//将获取的数据流构造为一个StreamReader,用来读取流的内容 HTML = srPage.ReadToEnd(); //使用StreamReader读取到流的末尾,并将读取的内容存储到HTML变量中 strmPage.Close(); return HTML; } catch (Exception) { if (strmPage != null) { strmPage.Close(); } return HTML; } } 我没有币,只能谢谢了。
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
MySQL数据库总结
文章目录一、数据库简介二、MySQL数据类型(5.5版本)三、Sql语句(1)Sql语句简介(2)数据定义语言DDLcreate,alter,drop(3)数据操纵语言DMLupdate,insert,delete(4)数据控制语言DCLgrant,revoke(5)数据查询语言DQLselect(6)分组查询与分页查询group by,limit四、完整性约束(单表)五、多表查询六、MySQL数
记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
有一次面试的时候,被问到进程之间有哪些通信方式,不过由于之前没深入思考且整理过,说的并不好。想必大家也都知道进程有哪些通信方式,可是我猜很多人都是靠着”背“来记忆的,所以今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等,这样的话,以后面试官让你举例子,你也能够顺手拈来。 1、管道 我们来看一条 Linux 的语句 netstat -tulnp | gr...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问