httpClient模拟get请求没有设置cookie却自带有cookie,如果设置了cookie却出现两个cookie

抓取网站数据,从第一个请求中响应头中有两个cookie,我设置到了下一个请求,然后用fiddler抓包发现,出现两个cookie,然后我不设置cookie,请求,这个是请求的get图片说明,然后重新用fiddler,发现还是有两个cookie,这是为什么呢,是因为上一个请求中有cookie,然后下一个请求自带了吗,求大佬解释图片说明

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
HttpClient 模拟登录 Cookie问题
问题描述:向登录地址发起POST请求,提交登录验证信息,提示登录成功后发起另一个请求,返回提示“未登陆,请重新登陆”。 我这里用了同一个 HttpClient 实例,不知为何? DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httpPost = new HttpPos("http://members.dota2.com.cn/dologin"); java.util.List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("username", "username")); nvps.add(new BasicNameValuePair("passwd", "password")); nvps.add(new BasicNameValuePair("rand", yzm)); httpPost.setEntity(new UrlEncodedFormEntity(nvps)); HttpResponse response = httpclient.execute(httpPost); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpEntity entity = response.getEntity(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String result = EntityUtils.toString(entity); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject json = JSONObject.fromObject(result); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("登录系统返回信息:"+json.toString()); } HttpPost httpPost = new HttpPost("http://event21.dota2.com.cn/dota2/activation/vipTester!contend.action"); java.util.List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("r", String.valueOf(Math.random()))); httpPost.setEntity(new UrlEncodedFormEntity(nvps)); HttpResponse response = httpclient.execute(httpPost); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpEntity entity = response.getEntity(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String result = EntityUtils.toString(entity); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject json = JSONObject.fromObject(result); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("RETURN DATA : " + json.toString()); }
httpclient获取cookie为空
什么情况下,从登入页面到index页面时,理论上login到index,可以得到cookie,会有jsessionId,但是获取的时候是空;代码: public static void main(String[] args) { // 登陆 Url String loginUrl = "http://192.168.1.127:8080/propertyLogin.html"; // 需登陆后访问的 Url String dataUrl = "http://192.168.1.127:8080/propertyadmin/index.do"; HttpClient httpClient = new HttpClient(); // 模拟登陆,按实际服务器端要求选用 Post 或 Get 请求方式 PostMethod postMethod = new PostMethod(loginUrl); // 设置登陆时要求的信息,用户名和密码 NameValuePair[] data = { new NameValuePair("userName", "10000000002"), new NameValuePair("passWord", "123456") }; postMethod.setRequestBody(data); try { // 设置 HttpClient 接收 Cookie,用与浏览器一样的策略 httpClient.getParams().setCookiePolicy( CookiePolicy.BROWSER_COMPATIBILITY); int a = httpClient.executeMethod(postMethod); // 获得登陆后的 Cookie Cookie[] cookies = httpClient.getState().getCookies(); StringBuffer tmpcookies = new StringBuffer(); for (Cookie c : cookies) { tmpcookies.append(c.toString() + ";"); } System.out.println("cookie:"+ httpClient.getState()+"==》结束"); // 进行登陆后的操作1581,1602,1603,1610,1609,1608,1607,1606,1605,1620,1619,1617,1616,1622,1626,1642,1648,1647,1657 GetMethod getMethod = new GetMethod(dataUrl); // 每次访问需授权的网址时需带上前面的 cookie 作为通行证 getMethod.setRequestHeader("cookie", tmpcookies.toString()); // 你还可以通过 PostMethod/GetMethod 设置更多的请求后数据 // 例如,referer 从哪里来的,UA 像搜索引擎都会表名自己是谁,无良搜索引擎除外 postMethod.setRequestHeader("Referer", "http://192.168.1.127:8080/propertyadmin/index.do"); postMethod.setRequestHeader("User-Agent", "www Spot"); httpClient.executeMethod(getMethod); // 打印出返回数据,检验一下是否成功 String text = getMethod.getResponseBodyAsString(); System.out.println(text); } catch (Exception e) { e.printStackTrace(); } } cookie的执行结果: System.out.println("cookie:"+ httpClient.getState()+"==》结束"); ==》cookie:[ | | ]==》结束 但是浏览器上的结果是:![图片说明](https://img-ask.csdn.net/upload/201706/21/1498027781_348950.png)
httpclient 加载cookiestore时,cookie类型转化为cookie2,求解答
使用htppclient 正常发送httpget请求,调入cookiestore数据。cookieStore含有11个cookie,执行的时候抓包发现,传出数据变成了10个cookie和一个cookie2。能告诉改怎么解决 CloseableHttpClient httpClient = getHttpClient(); HttpGet get = getHttpGet(url, headers); HttpClientContext context = HttpClientContext.create(); context.setCookieStore(cookieStore);
求大神帮忙解决下httpclient的问题
是这样,我利用httpclient成功模拟登录了学校教务处,在登陆成功后的页面上有一个 课程学生名单 的链接,这个链接点击后浏览器会打开一个新标签,我利用httpclient模拟这个get请求 结果得到的网页实体是未登录 的网页,我一直用的同一个client实例啊,为什么新标签下cookie会失效啊
HttpClient的Post请求失败(form表单参数包含中文)
我最近在使用HttpClient通过Post方式发送form表单提交请求,但是,在使用NameValuePair[] 拼写form提交参数的时候,有一些参数名包含了中文。我在测试时候发现,如果参数名中不包含中文,则该参数的值能够成功请求过去。但是,如果参数中包含中文,则请求参数值传递后不成功。 我当时,对参数名称进行了编码集的修改,但是,无任何效果。Post请求传递的是字节流,应该和编码集无关,所以一时想不出到底是哪里除了问题,请各位大侠帮帮忙!谢谢! 以下是我的代码片段: ``` HttpClient client = new HttpClient(); // 从会话中取出cookie信息并设置到client对象中 client.getState().addCookies(cookie); // 创建GetMethod用于获取所有咨询列表信息 String url="http://A.."; PostMethod listPost = new PostMethod(url); // 拼写参数 NameValuePair[] body = new NameValuePair[] { new NameValuePair("ctl00产品性质","01-high"), new NameValuePair("ctl00product_name","product01" )}; Part[] parts=new Part[ body.length]; for (int i = 0; i < body.length; i++) { parts[i]=new StringPart(body[i].getName(), StringUtils.isNotBlank(body[i].getValue())?body[i].getValue():"","UTF-8"); } listPost.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8"); listPost.setRequestEntity(new MultipartRequestEntity(parts,listPost.getParams())); listPost.setRequestHeader("Accept", "text/html, application/xhtml+xml, */*"); client.executeMethod(listPost); String reString = listPost.getResponseBodyAsString(); System.out.println(reString); if (listPost.getStatusCode() == 200) { return true; } ```
HttpClient请求问题
这是报错日志 Caused by: java.io.FileNotFoundException: D:\hdm\lh\hbiparent\core\target\core\META-INF\context.xml (系统找不到指定的文件。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at org.jetbrains.idea.tomcat.TomcatUtil.loadXMLFile(TomcatUtil.java:205) ... 28 moreeManager.jar 2017-08-07 11:07:16,381 [2438700] INFO - ij.compiler.impl.CompileDriver - COMPILATION STARTED (BUILD PROCESS) 2017-08-07 11:07:16,389 [2438708] INFO - j.compiler.server.BuildManager - Using preloaded build process to compile D:\hdm\lh\hbiparent 2017-08-07 11:07:16,764 [2439083] INFO - .server.BuildMessageDispatcher - 远程主机强迫关闭了一个现有的连接。 java.io.IOException: 远程主机强迫关闭了一个现有的连接。 这是代码 public Map<String, String> getSessionId(String userid ) { String token = null; String sessionId = null; http = new DefaultHttpClient(); try { String url = LOGINURL + "&username=" + userid; HttpPost post = new HttpPost(url); // post.setHeader("HYPLOGIN", userid); HttpResponse response = http.execute(post); BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line; while ((line = br.readLine()) != null) { result.append(line); } String string = result.toString(); // System.out.println(string); string = string.substring(0, 2500); // System.out.println(string); String regex = "sToken.*=.*\"(.+?)\";.*sCSRFToken"; Pattern p = Pattern.compile(regex); Matcher matcher = p.matcher(string); while (matcher.find()) { token = matcher.group(1); } post.abort(); // String mtoken = token.replace("\\n", "\\\n") + "="; // System.out.println(mtoken); HttpPost posthttp = new HttpPost(HTTPURL); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("Application", "FYCWYS")); nvps.add(new BasicNameValuePair("isContained", "true")); nvps.add(new BasicNameValuePair("isWorkspace", "true")); nvps.add(new BasicNameValuePair("LOCALE_LANGUAGE", "zh_CN")); nvps.add(new BasicNameValuePair("moduleid", "HyperionPlanning.planning.7")); nvps.add(new BasicNameValuePair("themeSelection", "BpmTadpole")); nvps.add(new BasicNameValuePair("upk_available", "false")); String mtoken = token.replace("\\n", "\\\n") + "="; nvps.add(new BasicNameValuePair("sso_token", mtoken)); posthttp.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse responseSession = http.execute(posthttp); posthttp.abort(); Header[] headers = responseSession.getHeaders("Set-Cookie"); for (Header header : headers) { if (header.toString().contains("SESSIONID")) { String str = header.toString(); // String reg = "Cookie:(.+?);.*path"; String reg = "JSESSIONID=(.+?);.*path"; Pattern pattern = Pattern.compile(reg); Matcher m = pattern.matcher(str); while (m.find()) { sessionId = m.group(1).trim(); } } } System.out.println(sessionId); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (UnsupportedOperationException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(sessionId); Map<String, String> map = new HashMap<>(); map.put("sessionId",sessionId); return map;
寻求HttpClient无法写Cookie的解决方法
问题描述: 公司申请了一个超短域名,假设改域名为 a.cn,有多个二级域名 比如 www.a.cn; file.a.cn;这些二级域名都有一个共同的功能, 就是要写cookie,而且这个cookie要在a.cn内共享。根据短域名写cookie的可行性,只能把写Cookie的功能统一交给a.cn这台服务器来执行才可以写成功。所以我现在如果要在www.a.cn服务器上写cookie(可供a.cn共享的Cookie),就只能借助HttpClient 在a.cn服务器上有一个Servlet,用来负责写Cookie,www.a.cn这台服务器上的应用程序借助HttpClient调用a.cn上的Servlet 一切执行都没有问题,但是就是Cookie无法写入文件中。如果在IE中直接调用那个Servlet,这可以把Cookie成功写入文件。 假如Servlet的完整请求地址为 http://a.cn/servlet a.an 服务器负责写Cookie的代码如下 [code="java"] public class CookieServlet extends HttpServlet { public CookieServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie cookie = new Cookie("CookieName", "haha"); cookie.setMaxAge(100000); cookie.setPath("/"); //这个不需要设置 //cookie.setDomain("a.cn"); response.addCookie(cookie); } public void init() throws ServletException { } } [/code] www.a.cn的请求代码如下 [code="java"] public class Test { public static void main(String args[]) { String cookieUrl = "http://a.cn/servlet"; String result = HttpUtils.executeGetMethod(cookieUrl); //其余代码省略,这里执行完后,并没有得到理想的结果。cookie没有写成功,如果 //在IE浏览器中执行 执行http://a.cn/servlet ,则可以成功写cookie } [/code] [code="java"] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpConnectionManager; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class HttpUtils { private static MultiThreadedHttpConnectionManager httpManager; private static final Log log = LogFactory.getLog(HttpUtils.class); public static HttpConnectionManager getHttpManager() { if (httpManager == null) { httpManager = new MultiThreadedHttpConnectionManager(); httpManager.getParams().setConnectionTimeout(3000); } return httpManager; } public static HttpClient createHttpClient() { HttpClient client = new HttpClient(getHttpManager()); return client; } public static String executeGetMethod(String url) { HttpMethod method = new GetMethod(url.toString()); return getHttpResult(method); } public static String executePostMethod(String url, Map<String, String> map) { PostMethod method = new InnerPostMethod(url); method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); if (map == null || map.size() == 0) { throw new IllegalArgumentException("map must be not null"); } NameValuePair[] data = new NameValuePair[map.size()]; Set<Map.Entry<String, String>> set = map.entrySet(); Iterator<Map.Entry<String, String>> it = set.iterator(); int i = 0; while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); data[i++] = new NameValuePair(entry.getKey(), entry.getValue()); } method.setRequestBody(data); return getHttpResult(method); } private static String getHttpResult(HttpMethod method) { InputStream is = null; try { HttpClient client = HttpUtils.createHttpClient(); int stat = client.executeMethod(method); if (stat != HttpStatus.SC_OK) { return null; } is = method.getResponseBodyAsStream(); BufferedReader reader = new BufferedReader(new InputStreamReader( is, "utf-8")); StringBuilder builder = new StringBuilder(); String tmp = null; while ((tmp = reader.readLine()) != null) { builder.append(tmp); } // Cookie cks[] = client.getState().getCookies(); // if (cks != null) { // for (Cookie c : cks) { // System.out.println(c.getName()+"\t"+c.getValue()); // } // } return builder.toString(); } catch (HttpException e) { return null; } catch (IOException e) { return null; } finally { method.releaseConnection(); try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } } } static class InnerPostMethod extends PostMethod { public InnerPostMethod(String url) { super(url); } @Override protected String getContentCharSet(Header contentheader) { return "UTF-8"; } } } [/code] 希望有遇到过类似问题的高手,给予帮助,谢谢
如何解决HttpClient无法获得cookie
我是个菜鸟。正在头疼这个 HttpClient client = new HttpClient(); String url = "http://wap.189zy.com"; HttpMethod method = new GetMethod(url); method.setQueryString(""); method.getParams().setCookiePolicy(CookiePolicy.RFC_2109); client.executeMethod(method); String body = method.getResponseBodyAsString(); Cookie[] cookie = client.getState().getCookies(); 获得的cookie是0 但是用HttpWatch看到这个了 Cookie ASP.NET_SessionId=e154uuzii140a4boyqspgr45 我哪里写的不对了呢?
android studio 获取cookie
最近一段时间开始使用android stuido 公司接口一直都有要获取cookie 进行登录 。然而 /* * 获取cookie值 */ public void getCookie(Context mContext) { DefaultHttpClient defaultHttpClient = (DefaultHttpClient) getHttpClient(); List<Cookie> cookies = defaultHttpClient.getCookieStore().getCookies(); for (int i = 0; i < cookies.size(); i++) { if (cookies.get(i).getName().equals("token")) { String cookie = cookies.get(i).getValue(); ACacheConst.cookie = cookie; ACache.get(mContext).put(ACacheConst.COOKIE, cookie); System.out.println("cookie---------------" + cookie); } } } 这段代码 在eclipse 上是完全没有问题的 但是在studio 就不行啊 后面找了下原因是 6.0 把HttpClient相关的类去掉了 要添加依赖库 于是 我再studio 添加了下 useLibrary 'org.apache.http.legacy' 就没问题了 但是问题来了 上面那段代码 在studio 上面还是获取不到cookie 我使用的是 retrofit 网络请求库 有没大神知道如何解决的 急 谢谢
httpclient怎么抓取最终跳转的网站数据?
公司要做个内部系统,抓取某个网站的数据,而那个网站是抓取淘宝的数据。 其中有个页面很复杂,搜索关键词后,跳转到当前页面,当前页面有个javascript 跳转淘宝请求数据。 (当我在他们网站搜索时,他们 是抓取淘宝数据的缓存到自己的网站,然后展现出来。 当我直接在地址栏拼接他们获取数据的地址时,发生了跳转,跳到淘宝去了。) **重点那个js的那个地址是他们网站的地址,然后再跳转到淘宝请求数据的** **我的httpclient怎么抓到跳转的最终页面,也就是那个全是json数据的页面?** ![地址栏拼接参数跳转的最终页面](https://img-ask.csdn.net/upload/201503/24/1427197301_154936.png) 我自己的httpclient 抓取的静态方法如下: ``` public String reqget(String url,String params){ String paramsencode=null; HttpClient client=new DefaultHttpClient(); //获得服务器保存的coockie String cookieStr = ""; List<Cookie> list = cs.getCookies(); for (Cookie cookie : list) { cookieStr += cookie.getName() + "=" + cookie.getValue() + ";"; } if(params!=""&&params!=null){ //paramsencode = URLEncoder.encode(params, "GBK"); url=url+"?"+params; } //封装Get请求 HttpGet get=new HttpGet(url); get.setHeader("Cookie", cookieStr); HttpResponse response; try { //提交get请求 response=client.execute(get); //通过响应的状态编码 判断请求是否成功提交 if(response.getStatusLine().getStatusCode()==200) { //获得服务器端的响应结果 HttpEntity respEntity= response.getEntity(); String respStr=EntityUtils.toString(respEntity,"GBK"); return respStr; } //prgDlg.dismiss(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } ```
请求超时的问题 HttpClient
public static String getJsonOfArray(String url) throws Exception { String JsonStr =null; if(url.contains("?")){ url +="&type=m"; }else{ url +="?type=m"; } HttpGet httpRequest = new HttpGet(url); HttpClient client = DefaultClient.getInstance(); [b]client.getParams().setParameter("http.socket.timeout",2000);[/b]//[i]设置请求服务器超时时间 不起作用[/i] client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY); try { HttpResponse httpResponse = client.execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK) { JsonStr = EntityUtils.toString(httpResponse.getEntity()); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Log.i("XX","---JsonStr---"+JsonStr); return JsonStr; }
android端http模拟登录某一网站并保存cookie做一些登录后的操作,求帮助
我用android端调用某网站的登陆接口,获取他的cookie并且保存下来,之后我定位到这个网站的一篇帖子并写请求去发帖,当然传入我登录时返回的cookie, 可是根据返回的结果查看,并没有登陆上去, 请各位帮我参谋一下 不胜感激 cookies = httpClient.getCookieStore();拿到cookies requestParams.addHeader("Referer", "http://comment.news.163.com/" + "money_bbs" + "/" + "BDEIBVLQ00252G50" + ".html");定位到这篇帖子 http.configCookieStore(cookies);传入cookie ==》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》 <input type="checkbox" name="autologin" class="ntes-loginframe-checkbox"> <span class="c-fl">十天内免登录</span></label> <a href="http://reg.163.com/RecoverPassword.shtml?f=www" class="c-fr">忘记密码?</a> </span> <button class="ntes-loginframe-btn"> 登 录 </button> ===》》》》》》》》》》》》》》》》》》》》》》》》 上面是返回的结果中一段
如何抓取带动态cookie的网站
抓取http://211.141.74.198:8081/aiccips/ 在加载的时候首先会设置cookie ![图片说明](https://img-ask.csdn.net/upload/201610/31/1477925897_397733.png) 执行完图中的Js后在报文中添加了 ROBOTCOOKIEID=865978a1ac4 的cookie。 然后在执行location.reload()操作。在httpclient中我模拟了和浏览器一模一样的操作 但是还是没能成功获取到页面。_注_:图片上的代码需要禁用掉JavaScript才能看到, 或者使用抓包也能看到。
Httpclient登录联通网上营业厅返回resultCode:9997问题。
最近公司项目要做一个把联通网上营业厅集成到我们网站来。也就是我需要用httpclient来模拟登录。于是去抓了一下包。 第一个请求(get) https://uac.10010.com/portal/Service/checkRelease?callback=jQuery1720617107516456003_1511159960382&_=1511159961141 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162198_970812.png) 第二个请求(get) https://uac.10010.com/portal/Service/CheckNeedVerify?callback=jQuery17206564225944591909_1511159961003&userName=18602300879&pwdType=01&_=1511159993091 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162290_293484.png) 第三个请求(get)发短信。 https://uac.10010.com/portal/Service/SendCkMSG?callback=jQuery17206564225944591909_1511159961004&req_time=1511160013454&mobile=18602356789&_=1511160013457 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162229_613914.png) 这里调用了发短信的接口可以看到cookie里边有一个uacverifykey,但是我用的CookieStore cookieStore=new BasicCookieStore(); httpclient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();然后打印出cookie,没有获取得到uacverifykey。只获取到了ckuuid这个数据。而没有uacverifykey 最后一步(登录)这个时候在cookie这也传了uacverifykey https://uac.10010.com/portal/Service/MallLogin?callback=jQuery17206564225944591909_1511159961005&req_time=1511160027220&redirectURL=http%3A%2F%2Fwww.10010.com&userName=18602356789&password=123456&pwdType=01&productType=01&redirectType=01&rememberMe=1&verifyCKCode=726440&_=1511160027222 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511162315_992586.png) 执行这个登录之后就返回jQuery172007908107331762243_1511161316459({resultCode:9997}); 也不知道是什么问题。 跪求大家看看有没有研究过。。或则给我说说是什么地方出了问题了。
httpClient 3如何session会话保持?
问题场景: 通过httpClient请求同一门户的接口地址,因为登录后和未登录的时候返回的数据不一样。所以当用户在门户上登录的情况下,访问接口返回的数据也应该是要登录口的数据。现在返回的都是未登录的情况。‘请问大神们此问题如何解决。 代码如下: String url = "http://192.168.41.56/portal/480/home/wap/xqy/ljjk/dbjqbf/index.jsp"; String result = ""; HttpClient client = new HttpClient(); //client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); HttpConnectionManagerParams managerParams = client.getHttpConnectionManager().getParams(); // 设置连接超时时间(单位毫秒) managerParams.setConnectionTimeout(500); managerParams.setSoTimeout(5000); GetMethod getMethod=new GetMethod(); URI base = new URI(url,false); getMethod.setURI(new URI(base,"",false)); int resultCode = client.executeMethod(getMethod); if(resultCode == 200 ) { byte[] body=getMethod.getResponseBody(); if(body!=null && body.length>0){ result=new String(body,"UTF-8"); System.out.println(result); }else{ System.out.println(" 无返回值 url ="+url); } }else{ System.out.println(" HTTP 返回异常 url ="+url +", resultCode= "+ resultCode); } getMethod.releaseConnection();
关于HttpClient的问题,如何使用HttpClient重定向?
``` /* * HttpRequestProxy.java * * Created on November 3, 2008, 9:53 AM */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.SimpleHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; public class HttpRequestProxy { // 超时间隔 private static int connectTimeOut = 60000; // 让connectionmanager管理httpclientconnection时是否关闭连接 private static boolean alwaysClose = false; // 返回数据编码格式 private String encoding = "UTF-8"; private final HttpClient client = new HttpClient(); public HttpClient getHttpClient() { return client; } /** * 用法: HttpRequestProxy hrp = new HttpRequestProxy(); * hrp.doRequest("http://www.163.com",null,null,"gbk"); * * @param url * 请求的资源URL * @param postData * POST请求时form表单封装的数据 没有时传null * @param header * request请求时附带的头信息(header) 没有时传null * @param encoding * response返回的信息编码格式 没有时传null * @return response返回的文本数据 * @throws CustomException */ public String doRequest(String url, Map postData, Map header, String encoding) throws Exception { String responseString = null; // 头部请求信息 Header[] headers = null; if (header != null) { Set entrySet = header.entrySet(); int dataLength = entrySet.size(); headers = new Header[dataLength]; int i = 0; for (Iterator itor = entrySet.iterator(); itor.hasNext();) { Map.Entry entry = (Map.Entry) itor.next(); headers[i++] = new Header(entry.getKey().toString(), entry.getValue().toString()); } } // post方式 if (postData != null) { PostMethod postRequest = new PostMethod(url.trim()); if (headers != null) { for (int i = 0; i < headers.length; i++) { postRequest.setRequestHeader(headers[i]); } } Set entrySet = postData.entrySet(); int dataLength = entrySet.size(); NameValuePair[] params = new NameValuePair[dataLength]; int i = 0; for (Iterator itor = entrySet.iterator(); itor.hasNext();) { Map.Entry entry = (Map.Entry) itor.next(); params[i++] = new NameValuePair(entry.getKey().toString(), entry.getValue().toString()); } postRequest.setRequestBody(params); try { responseString = this.executeMethod(postRequest, encoding); } catch (Exception e) { throw e; } finally { postRequest.releaseConnection(); } } return responseString; } private String executeMethod(HttpMethod request, String encoding) throws Exception { String responseContent = null; InputStream responseStream = null; BufferedReader rd = null; try { this.getHttpClient().executeMethod(request); if (encoding != null) { responseStream = request.getResponseBodyAsStream(); rd = new BufferedReader(new InputStreamReader(responseStream, encoding)); String tempLine = rd.readLine(); StringBuffer tempStr = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { tempStr.append(tempLine); tempStr.append(crlf); tempLine = rd.readLine(); } responseContent = tempStr.toString(); } else responseContent = request.getResponseBodyAsString(); Header locationHeader = request.getResponseHeader("location"); // 返回代码为302,301时,表示页面己经重定向,则重新请求location的url,这在 // 一些登录授权取cookie时很重要 if (locationHeader != null) { String redirectUrl = locationHeader.getValue(); this.doRequest(redirectUrl, null, null, null); } } catch (HttpException e) { throw new Exception(e.getMessage()); } catch (IOException e) { throw new Exception(e.getMessage()); } finally { if (rd != null) try { rd.close(); } catch (IOException e) { throw new Exception(e.getMessage()); } if (responseStream != null) try { responseStream.close(); } catch (IOException e) { throw new Exception(e.getMessage()); } } return responseContent; } /** * 特殊请求数据,这样的请求往往会出现redirect本身而出现递归死循环重定向 所以单独写成一个请求方法 * 比如现在请求的url为:http://localhost:8080/demo/index.jsp 返回代码为302 * 头部信息中location值为:http://localhost:8083/demo/index.jsp * 这时httpclient认为进入递归死循环重定向,抛出CircularRedirectException异常 * * @param url * @return * @throws CustomException */ public String doSpecialRequest(String url, int count, String encoding) throws Exception { String str = null; InputStream responseStream = null; BufferedReader rd = null; GetMethod getRequest = new GetMethod(url); // 关闭httpclient自动重定向动能 getRequest.setFollowRedirects(false); try { this.client.executeMethod(getRequest); Header header = getRequest.getResponseHeader("location"); if (header != null) { // 请求重定向后的URL,count同时加1 this.doSpecialRequest(header.getValue(), count + 1, encoding); } // 这里用count作为标志位,当count为0时才返回请求的URL文本, // 这样就可以忽略所有的递归重定向时返回文本流操作,提高性能 if (count == 0) { getRequest = new GetMethod(url); getRequest.setFollowRedirects(false); this.client.executeMethod(getRequest); responseStream = getRequest.getResponseBodyAsStream(); rd = new BufferedReader(new InputStreamReader(responseStream, encoding)); String tempLine = rd.readLine(); StringBuffer tempStr = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { tempStr.append(tempLine); tempStr.append(crlf); tempLine = rd.readLine(); } str = tempStr.toString(); } } catch (HttpException e) { throw new Exception(e.getMessage()); } catch (IOException e) { throw new Exception(e.getMessage()); } finally { getRequest.releaseConnection(); if (rd != null) try { rd.close(); } catch (IOException e) { throw new Exception(e.getMessage()); } if (responseStream != null) try { responseStream.close(); } catch (IOException e) { throw new Exception(e.getMessage()); } } return str; } public static void main(String[] args) throws Exception { HttpRequestProxy hrp = new HttpRequestProxy(); Map date = new HashMap(); date.put("jyidApplet", "1"); date.put("codeNumApplet", "1"); date.put("jymxIdApplet", "447"); date.put("patientIdApplet", "1118"); String str = hrp.doRequest("http://127.0.0.1:8080/lis/mz/addTM",date, null, null); System.out.println(str); } } ```
模拟登录教务在线,为什么进去的不是登录后的界面,而是登录前的界面,求大神帮忙,毕业论文需要
package loginApp; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class ImitateLogin { public static void main(String[] args) { String userName = "1307012027"; // 本人学号 String password = "360731*********"; // 本人密码 String loginUrl = "http://jwc.jxnu.edu.cn/Default_Login.aspx?preurl="; String dataUrl = "http://jwc.jxnu.edu.cn"; HttpClientLogin(userName, password, loginUrl, dataUrl); } private static void HttpClientLogin(String userName, String password, String loginUrl, String dataUrl) { HttpClient httpClient = new HttpClient(); httpClient.getParams().setParameter( HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8"); PostMethod postMethod = new PostMethod(loginUrl); NameValuePair[] postData = { new NameValuePair("StuNum", userName), new NameValuePair("Password", password) }; postMethod.setRequestBody(postData); try { httpClient.getParams().setCookiePolicy( CookiePolicy.BROWSER_COMPATIBILITY); httpClient.executeMethod(postMethod); Cookie[] cookies = httpClient.getState().getCookies(); StringBuffer stringBuffer = new StringBuffer(); for (Cookie c : cookies) { stringBuffer.append(c.toString() + ";"); } GetMethod getMethod = new GetMethod(dataUrl); getMethod.setRequestHeader("Cookie", stringBuffer.toString()); postMethod.setRequestHeader("Host", "http://jwc.jxnu.edu.cn"); postMethod.setRequestHeader("Referer", "http://jwc.jxnu.edu.cn/Default_Login.aspx?preurl="); postMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"); httpClient.executeMethod(getMethod); String result = getMethod.getResponseBodyAsString(); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } }
JAVA POST登录异常问题?
网上找的HTTP登录代码,登录后返回能200,但是不用用户名密码也返回200,且用Cookie[] cookies = httpClient.getState().getCookies(); StringBuffer tmpcookies = new StringBuffer(); for (Cookie c : cookies) { tmpcookies.append(c.toString() + ";"); System.out.println("cookies = "+c.toString()); } 能取到Cookies,这个搞不懂 登录成功后跳到另一个网页,但是用System.out.println("ResponseBody:\n" + stringBuffer.toString());返回如下: ``` <html> <head><title></title> <SCRIPT LANGUAGE="JavaScript"> var currentWindow = window; if(currentWindow != null){ currentWindow.top.location = "/NMMP/jsp/login.jsp"; } </SCRIPT> </head> ``` 感觉跳转时少了东西,所以跳转后的网页不对,请各们大神帮分析下,或者给个思路,本人不是搞程序的,只是想做一个来应对自己的重复工作,完整代码如下:本人无C币,如果有兴趣帮我做可商量 ``` import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; /** * * @ClassName: HttpLogin * @Description: java通过httpclient获取cookie模拟登录 * @author zeze * @date 2015年11月10日 下午4:18:08 * */ public class HttpLogin { public static void main(String[] args) { // 登陆 Url String loginUrl = "http://10.154.13.82:7011/NMMP/jsp/login.jsp"; // 需登陆后访问的 Url String dataUrl = "http://10.154.13.82:7011/NMMP/wyMainAction!init.ilf"; //http://10.154.13.82:7011/NMMP//jsp/wyService/mytasklist.jsp HttpClient httpClient = new HttpClient(); // 模拟登陆,按实际服务器端要求选用 Post 或 Get 请求方式 PostMethod postMethod = new PostMethod(loginUrl); // 设置登陆时要求的信息,用户名和密码 NameValuePair[] data = { new NameValuePair("useraccount", ""), new NameValuePair("password", "Hn_yd45") }; postMethod.setRequestBody(data); try { // 设置 HttpClient 接收 Cookie,用与浏览器一样的策略 httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); int statusCode=httpClient.executeMethod(postMethod); // 获得登陆后的 Cookie Cookie[] cookies = httpClient.getState().getCookies(); StringBuffer tmpcookies = new StringBuffer(); for (Cookie c : cookies) { tmpcookies.append(c.toString() + ";"); System.out.println("cookies = "+c.toString()); } System.out.println(statusCode); if(statusCode==200){//重定向到新的URL System.out.println("模拟登录成功"); // 进行登陆后的操作 GetMethod getMethod = new GetMethod(dataUrl); // 每次访问需授权的网址时需带上前面的 cookie 作为通行证 // getMethod.setRequestHeader("cookie", tmpcookies.toString()); // 你还可以通过 PostMethod/GetMethod 设置更多的请求后数据 // 例如,referer 从哪里来的,UA 像搜索引擎都会表名自己是谁,无良搜索引擎除外 // postMethod.setRequestHeader("Referer", "http://passport.mop.com/"); getMethod.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"); getMethod.setRequestHeader("Referer","http://10.154.13.82:7011/NMMP/login.ilf"); getMethod.setRequestHeader("Accept-Encoding","gzip, deflate"); getMethod.setRequestHeader("Accept-Language","zh-CN,zh;q=0.9"); getMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" ); httpClient.executeMethod(getMethod); statusCode=httpClient.executeMethod(getMethod); System.out.println("模拟登录成功"+statusCode); // 打印出返回数据,检验一下是否成功 // String text = getMethod.getResponseBodyAsString(); InputStream inputStream = getMethod.getResponseBodyAsStream(); BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); StringBuffer stringBuffer = new StringBuffer(); String str= ""; while((str = br.readLine()) != null){ stringBuffer .append(str ); } System.out.println("ResponseBody:\n" + stringBuffer.toString()); HttpRequestProxy hrp = new HttpRequestProxy(); Map date = new HashMap(); date.put("jyidApplet", "1"); date.put("codeNumApplet", "1"); date.put("jymxIdApplet", "447"); date.put("patientIdApplet", "1118"); String str1 = hrp.doRequest(dataUrl,date, null, null); System.out.println("sd"+str1); } else { System.out.println("登录失败"); } } catch (Exception e) { e.printStackTrace(); } } } ``` 登录网页源码如下: ``` <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>综合管理系统</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <style type="text/css"> *{ margin:auto; } html,body{ overflow:hidden; width:100%; height:100%; margin:auto; } body{ background:url(/NMMP/common-skins/maintain/images/login_bg_1.0.gif); } #login_panel{ background-image:url(/NMMP/common-skins/maintain/images/login_panel_bg_1.0.png); background-repeat:repeat-x; height:640px; width:100%; text-align:center; position:relative; } #login_input{ background-image:url(/NMMP/common-skins/maintain/images/login_input_1.0.png); background-repeat:no-repeat; width:668px; height:403px; position:relative; } #useraccount{ border:none; position:absolute; left:392px; top:149px; height:24px; width:136px; background-color:#99deff; } #password{ border:none; position:absolute; left:392px; top:183px; height:24px; width:136px; background-color:#99deff; } #login_botton{ position:absolute; left:537px; _left:538px; top:147px; } #message{ position:absolute; left:348px; top:218px; color:#F00; font-size:14px; font-weight:bold; } #technical{ position:absolute; left:375px; top:258px; text-align:left; color:#CCC; font-size:12px; line-height:30px; } #copyright{ position:absolute; bottom:65px; right:0px; color:#CCC; font-size:12px; text-align:right; line-height:20px; } </style> <!--[if IE 6]> <script language="javascript" type="text/javascript" src="/NMMP/common-skins/default/jslib/DD_belatedPNG.js"> </script> <script language="javascript" type="text/javascript"> DD_belatedPNG.fix('#login_panel'); DD_belatedPNG.fix('#login_input'); </script> <![endif]--> </head> <body windowc_onresizez="true"> <div id="login_panel"> <div id="login_input" style="top: 110.5px;"> <form name="form1" action="/NMMP/CtrlUser.action?action=login&amp;surl=jsp/home/main.jsp&amp;furl=jsp/login.jsp" method="post" 360chrome_form_autofill="2"> <input name="useraccount" id="useraccount" style="background-color: rgb(250, 255, 189);" required="true" type="text"> <input name="password" id="password" style="background-color: rgb(250, 255, 189);" required="true" type="password"> <input id="login_botton" type="image" src="/NMMP/common-skins/maintain/images/login_botton.png"> <div id="message"> </div> <!-- div id="technical"><a style="color:orange" href="javascript:void(0)" onclick="resetpwd();">密码重置</a></div--> <div id="copyright">版权所有:</div> </form> </div> </div> <script language="javascript" type="text/javascript"> document.getElementById("login_input").style.top=(document.body.clientHeight-403)/2+"px"; function resetpwd(){ var url = "/NMMP/resetpwdAction.ilf"; window.location.href=url; } </script> </body></html> ```
java里怎样在客户端获取response的Cookie
<span style="font-size: large">我使用URL发了一个get请求,如何才能获取到它返回给我的Cookie呢。 <br /> <br />URL geturl = new URL(myurl); <br />HttpURLConnection conn = (HttpURLConnection)geturl.openConnection(); <br />conn.setConnectTimeout(5000); <br />conn.setRequestMethod("GET");</span><br/><strong>问题补充</strong><br/><div class="quote_title">yava555 写道</div><div class="quote_div"><div class="quote_title">raito_yagami 写道</div><div class="quote_div"><span style="font-size: large">我使用URL发了一个get请求,如何才能获取到它返回给我的Cookie呢。 <br /> <br />URL geturl = new URL(myurl); <br />HttpURLConnection conn = (HttpURLConnection)geturl.openConnection(); <br />conn.setConnectTimeout(5000); <br />conn.setRequestMethod("GET");</span></div> <br /> <br /><pre name="code" class="java"> String key = null; for (int i = 1; (key = http.getHeaderFieldKey(i)) != null; i++) { if (key.equalsIgnoreCase("set-cookie")) { String cookie = null; cookie = http.getHeaderField(i); int i1=cookie.indexOf("="); int i2=cookie.indexOf(";"); if(i1!=-1&amp;&amp;i2!=-1){ String _value=cookie.substring(i1+1, i2); String _key=cookie.substring(0, i1); cookieMap.put(_key, _value); } } } </pre></div> <br /> <br />哦,是不是要用HttpClient,谢谢啊,那我那个链接的方法不知道有没有什么方法。
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
深深的码丨Java HashMap 透析
HashMap 相关概念 HashTab、HashMap、TreeMap 均以键值对像是存储或操作数据元素。HashTab继承自Dictionary,HashMap、TreeMap继承自AbstractMap,三者均实现Map接口 **HashTab:**同步哈希表,不支持null键或值,因为同步导致性能影响,很少被使用 **HashMap:**应用较多的非同步哈希表,支持null键或值,是键值对...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 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)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问