httpclient获取到的网页内容和查看网页源代码的内容不同

最近在学httpclient,随便抓来一个网页:"http://ah.10086.cn",想通过httpget方法得到其原网页内容,本来以为很简单,先是碰到https验证问题,通过验证后拿到的网页源码竟然和鼠标右键查看网页源码不同,百思不得其解……

1个回答

这很正常啊,有些是js动态加载的页面内容,有些是嵌了iframe之类的

wangzhangxing
wangzhangxing 做个基于浏览器内核的解析器...比如说基于webkit,不过难度太大了. 还是直接针对js进行解析吧,有针对性地获取数据
接近 8 年之前 回复
waitlonely
waitlonely 有没有办法等加载完了再返回完整的页面啊?
接近 8 年之前 回复
wangzhangxing
wangzhangxing 不会,有些ajax异步延迟加载的内容,你请求过去它还没开始加载呢,只会把最初的原始页面返回给你
接近 8 年之前 回复
waitlonely
waitlonely 是请求发送之后返回的响应,就算是用js动态加载也应该加载完了正常返回吧
接近 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
httpclient 动态网页获取

public static String getHtmlByUrl(String url){ String html = null; HttpClient httpClient = new DefaultHttpClient();//创建httpClient对象 HttpGet httpget = new HttpGet(url);//以get方式请求该URL try { HttpResponse responce = httpClient.execute(httpget);//得到responce对象 int resStatu = responce.getStatusLine().getStatusCode();//返回码 if (resStatu==HttpStatus.SC_OK) {//200正常 其他就不对 //获得相应实体 HttpEntity entity = responce.getEntity(); System.out.println(Integer.toString(resStatu)); if (entity!=null) { html = EntityUtils.toString(entity);//获得html源代码 } } } catch (Exception e) { System.out.println("访问【"+url+"】出现异常!"); e.printStackTrace(); } finally { httpClient.getConnectionManager().shutdown(); } //System.out.println(html); return html; } 上述代码只能抓静态网页数据 麻烦看下上面代码怎么改才能获取动态网页数据啊

java获取网页源码中图片地址

得到了网页源码,如何分析其中的图片地址,如何写给个方法,![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)

android获取网页源码问题

以下是我从网上找的获取网页源码的 代码 所有包都已经正常导入 但是编译后 程序一运行就崩溃 求大神指点 import 略; /** * @author Jasonzhou * @since 2013-03-21 * @功能 读取网页内容 * @说明 获取网页的全部代码后使用jsuop进行处理, 以便得到想要的内容 **/ public class MainActivity extends Activity { public String url = "http://blog.csdn.net/jasonzhou613/article/details/7905388"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manageException();// 处理抛出异常 TextView tv = (TextView) findViewById(R.id.text); String myString = null; myString = posturl(url); // 设置屏幕显示 Log.i("---网页代码---", "" + myString); String html = myString; Document doc = Jsoup.parse(html); tv.setText(doc.title()); } /** * 获取参数指定的网页代码,将其返回给调用者,由调用者对其解析 返回String */ public String posturl(String url) { InputStream is = null; String result = ""; try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { return "Fail to establish http connection!" + e.toString(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "utf-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { return "Fail to convert net stream!"; } return result; } public void manageException() { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() // or // .detectAll() // for // all // detectable // problems .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath() .build()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }

HTTPClient可否保持一个会话,就好像浏览器自动跳转、或执行JS

在写一个网页获取的java程序时,用到了HTTPClient包,现在出现这样的问题,可能有一些网站防止获取,采用了一些跳转操作,用httpclient提交了请求后,返回的状态码是200,但这个网页中又加入了一些JS代码,比如: window.setTimeout('document.getElementById("formxh4t").submit();',3000); 这样也完成了页面的跳转,在浏览器中是可以自动的跳转,但HTTPClient就不行了,我想的是有没有什么方法可以跟踪住这个会话,就想在浏览器中一样。 当然,要是有别的什么jar包可以实现这个功能化,希望能推荐一些,谢谢!

Java_爬虫,如何抓取Js动态生成数据的页面?

<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p> </p> <p> </p> <p> </p> <p>很多网站是用js或Jquery 生成数据的,到后台获取到数据以后,用 document.write()或者("#id").html="" 的方式 写到页面中,这个时候用浏览器查看源码是看不到数据的。<br><br>HttpClient是不行的,看网上说HtmlUnit,说  可以获取后台js加载完后的完整页面,但是我按照文章上说的 写了 ,都不好使。</p> <pre name="code" class="java">String url = "http://xinjinqiao.tprtc.com/admin/main/flrpro.do"; try { WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10); //设置webClient的相关参数 webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setCssEnabled(false); webClient.setAjaxController(new NicelyResynchronizingAjaxController()); //webClient.getOptions().setTimeout(50000); webClient.getOptions().setThrowExceptionOnScriptError(false); //模拟浏览器打开一个目标网址 HtmlPage rootPage = webClient.getPage(url); System.out.println("为了获取js执行的数据 线程开始沉睡等待"); Thread.sleep(3000);//主要是这个线程的等待 因为js加载也是需要时间的 System.out.println("线程结束沉睡"); String html = rootPage.asText(); System.out.println(html); } catch (Exception e) { } </pre> <p> </p> <p>其实这段代码不好使。<br><br><br>求解答,其中典型的就是这个链接的页面,怎么能在java程序中获取其中的数据?<br><br>http://xinjinqiao.tprtc.com/admin/main/flrpro.do</p> <p> </p> <p> </p> </div>

C# web端获取iframe里链接的html

如题,现在有一个页面用了iframe,iframe里带了一条链接。现在就是要获取这条链接里面的html文本。 注意:是要在web端上实现, 还有如果要说webBrowser1.Document.Window.Frames["mainFrame"].Document.Body.InnerHtml;就免了,我已经试过了不行!!!

模拟登录,网站源码里面有几个隐藏的input流水号,获取到模拟post请求就是登录不了。

private string getMatch(string text, Regex reg) { Match mBody = reg.Match(text); return mBody.Value; } private void btnLogin_Click(object sender, EventArgs e) { HttpClient httpClient = new HttpClient(); httpClient.MaxResponseContentBufferSize = 256000; httpClient.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); string url = "http://ehire.51job.com/MainLogin.aspx"; HttpResponseMessage response = httpClient.GetAsync(new Uri(url)).Result; string result = response.Content.ReadAsStringAsync().Result; string ctmName = "会员名"; string userName = "账号"; string password = "密码"; string checkCode = string.Empty; string isRememberMe = "false"; string returl = string.Empty; Regex reg = new Regex(@"(?<=id=""hidLangType"" value="").*(?="")"); Regex reg1 = new Regex(@"(?<=id=""hidAccessKey"" value="").*(?="")"); Regex reg2 = new Regex(@"(?<=id=""fksc"" value="").*(?="")"); Regex reg3 = new Regex(@"(?<=id=""hidEhireGuid"" value="").*(?="")"); string langtype = getMatch(result, reg); string oldAccessKey = getMatch(result, reg1); string sc = getMatch(result, reg2); string ec = getMatch(result, reg3); HttpContent postContent = new FormUrlEncodedContent(new Dictionary<string, string>() { {"ctmName", ctmName}, {"userName", userName}, {"password", password}, {"checkCode", checkCode}, {"oldAccessKey", oldAccessKey}, {"langtype", langtype}, {"isRememberMe", isRememberMe}, {"sc", sc}, {"ec", ec}, {"returl", returl} }); response = httpClient.PostAsync(new Uri(url), postContent).Result result = response.Content.ReadAsStringAsync().Result; txtResult.Text = result; httpClient.Dispose(); } 一直停留在登陆页面进不了后面,怎么解决啊?

为什么我得到的文本没有内容,全都是逻辑代码,怎么样能获得网页里的文本

public class down { String text="abc"; String URL="http://zhidao.baidu.com/question/1667030995892031787.html"; HttpClient client=new HttpClient(); GetMethod mythod=new GetMethod(URL); public void get() { try{ int status=client.executeMethod(mythod); if(status==HttpStatus.SC_OK) { text=mythod.getResponseBodyAsString(); System.out.print(text); } else{text="cba";} }catch(Exception e){}

DefaultHttpClient()不推荐使用如何解决?

今天在搞一个简单的获取网页源码的例子时发现HttpClient httpclient = new DefaultHttpClient(); 这句无法使用了。 提示是DefaultHttpClient()过时了。求大神指点,该如何解决?

JAVA发送http请求模拟用户点击

小弟想做一个自动赞QQ空间好友说说的应用,思路是这样的:先获取手机QQ空间好友动态页面的HTML源码,然后用正则表达式提取出点赞的URL,然后请求这些URL就实现了自动点赞的功能。 提取出点赞URL的功能是实现了,现在问题是请求点赞URL的时候返回的结果是:访问Qzone的用户太多了,有些拥挤, 您可以稍后再尝试. 自己推测这个应该是腾讯那边做了某些判断,于是加上一些基本的http头信息,然后请求还是这个结果,不知道有没有朋友研究过这个的,求解答

传统web项目业务操作成功后调用日志服务返回成功标识,这时操作失败如何处理?

在做后端管理添加操作日志这块,直接将日志服务和业务代码分开:楼主想了以下几点: 1.不分开的话虽然保证事务一致,但需要在每个操作中添加日志写入代码,过于繁琐; 2.由于系统存在动态切换数据源设计,从业务代码切换到日志代码若想切换数据源必须提交事务,想要利用事务传播特性控制业务操作和日志录入操作也没法实现; 3.老大要求使用轻量级的解决方案,mq不考虑; 楼主将日志单独写成一个项目,想着利用AOP拦截业务操作,切面中利用Httpclient调用日志接口;这样操作和日志都能实现了,但是发现个问题:操作成功(这时未提交事务),日志写入成功,接着出现任何问题导致操作失败回滚,就会多出日志记录,如何解决?

jsoup 获取数据出错。换了代理ip也不行

如题。jsoup获取数据出错。用了代理去访问也不行。 先贴爬取页面的代码 ``` @Slf4j @Component public class SpiderUtil { @Resource private DynamicIpUtil dynamicIpUtil; /** * 根据url爬取页面信息 * * @param url url * @return 页面信息 */ public Document spiderDocument(String url) { Document pageDoc = null; try { Connection con= Jsoup.connect(url) .userAgent("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; BIDUBrowser 2.x)") .timeout(5000); /*.ignoreHttpErrors(true) .followRedirects(true)*/ Connection.Response resp = con.execute(); if (resp.statusCode() == 200){ pageDoc = con.get(); } else { log.error("http status error"); dynamicIpUtil.changeMyIp(); spiderDocument(url); } if(pageDoc == null || pageDoc.toString().trim().equals("")) {// 表示ip被拦截或者其他情况 log.error("ip被拦截 无内容"); dynamicIpUtil.changeMyIp(); spiderDocument(url); } } catch (Exception e) { log.error("ip被拦截 异常: {}", e); dynamicIpUtil.getMyIpInfo(); dynamicIpUtil.changeMyIp(); spiderDocument(url); } if (ipDefensed(url, pageDoc)) { // 如果被ip限制了,更换动态ip dynamicIpUtil.changeMyIp(); spiderDocument(url); } return pageDoc; } /** * 判断ip是否被封 * * @param pageDoc 页面信息 * @return ip */ private boolean ipDefensed(String url, Document pageDoc) { boolean ipDefensed = false; if (url.contains("anjuke.com")) { ipDefensed = AJKIpDefense(pageDoc); } return ipDefensed; } /** * 安居客判断ip是否被封 * * @param pageDoc 页面信息 */ private boolean AJKIpDefense(Document pageDoc) { log.error("ip 被拦截 安居客"); boolean ajkppDefensed = false; String title = pageDoc.title(); if (title.equals("访问验证-安居客")) { ajkppDefensed = true; } return ajkppDefensed; } } ``` 再贴换动态ip的代码 ``` @Slf4j @Component public class DynamicIpUtil { private static List<String[]> ipAndPorts = new ArrayList<String[]>(); private static Integer ipPageNum = 1; /** * 更换动态ip */ public void changeMyIp() { String [] ipAndPort = getDynamicIpAndPort(); String ip = ipAndPort[0]; String port = ipAndPort[1]; System.setProperty("http.maxRedirects", "50"); System.setProperty("https.maxRedirects", "50"); System.getProperties().setProperty("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", ip); System.getProperties().setProperty("http.proxyPort", port); System.getProperties().setProperty("https.proxyHost", ip); System.getProperties().setProperty("https.proxyPort", port); } /** * 获取ip信息 */ public void getMyIpInfo(){ try { Document ipDoc = Jsoup.connect("http://www.ip.cn") .userAgent("Mozilla") .timeout(3000) .get(); if(ipDoc != null){ String ipInfo = ipDoc.select(".well").first().text(); log.info("更换ip 成功: {}", ipInfo); } } catch (Exception e) { log.info("暂不能获取ip 信息"); } } /** * 获取动态ip * * @return 动态ip */ private String[] getDynamicIpAndPort() { String[] ipAndPort = null; if (ipAndPorts != null && ipAndPorts.size() > 0) { ipAndPort = ipAndPorts.get(0); ipAndPorts.remove(0); } else { try { Document pageDoc = Jsoup.connect("http://www.xicidaili.com/wn/" + ipPageNum) .userAgent("Mozilla") .timeout(5000) .get(); Elements elements = pageDoc.select("tr.odd"); ipPageNum ++; if(ipPageNum > 400){ ipPageNum = 1; } for(Element element : elements){ String[] ipPort = new String[2]; String ip = element.child(1).text(); String port = element.child(2).text(); String noName = element.child(4).text(); // if(!noName.equals("高匿")){ // continue; // } String speedStr = element.child(6).select(".bar").first().attr("title"); double speed = Double.valueOf(speedStr.substring(0, speedStr.indexOf("秒"))); String timeStr = element.child(7).select(".bar").first().attr("title"); double time = Double.valueOf(timeStr.substring(0, timeStr.indexOf("秒"))); if(speed <= 1 && time <= 1){ ipPort[0] = ip; ipPort[1] = port; ipAndPorts.add(ipPort); } } return getDynamicIpAndPort(); } catch (IOException e) { log.error("get DynamicIpError error info :\n {}", e); } } return ipAndPort; } } ``` 如上。在获取这个网页上的数据的时候会出现问题 https://cd.zu.anjuke.com/fangyuan/p1/ 具体的错误有几种。 java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:703) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647) at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2000) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:563) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) org.jsoup.HttpStatusException: HTTP error fetching URL at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:590) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:587) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 503 Too many open connections" at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2084) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:563) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) java.net.SocketException: Unexpected end of file from server at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:790) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647) at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2000) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:563) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:587) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) 请各位高手帮我看下。谢谢了。在线等。急急急急急急!!!!!

运行myeclipse时出现java.lang.NoClassDefFoundError的错误

我想获得网页的编码,在网上找了可以用chardet.jar中的方法实现,于是下载了它,导入我的工程中,然后用如下代码进行测试: import info.monitorenter.cpdetector.io.CodepageDetectorProxy; import info.monitorenter.cpdetector.io.HTMLCodepageDetector; import info.monitorenter.cpdetector.io.JChardetFacade; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class WebEncoding { private static CodepageDetectorProxy detector = CodepageDetectorProxy .getInstance(); static { detector.add(new HTMLCodepageDetector(false)); detector.add(JChardetFacade.getInstance()); } /** 测试用例 * @param args */ public static void main(String[] args) { WebEncoding web=new WebEncoding(); try { System.out.println("*******************"); System.out.println(web.getCharset("http://www.baidu.com/")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param strurl * 页面url地址,需要以 http://开始,例:http://www.pujia.com * @return * @throws IOException */ public String getCharset(String strurl) throws IOException { // 定义URL对象 URL url = new URL(strurl); // 获取http连接对象 HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); ; urlConnection.connect(); // 网页编码 String strencoding = null; /** * 首先根据header信息,判断页面编码 */ // map存放的是header信息(url页面的头信息) Map<String, List<String>> map = urlConnection.getHeaderFields(); Set<String> keys = map.keySet(); Iterator<String> iterator = keys.iterator(); // 遍历,查找字符编码 String key = null; String tmp = null; while (iterator.hasNext()) { key = iterator.next(); tmp = map.get(key).toString().toLowerCase(); // 获取content-type charset if (key != null && key.equals("Content-Type")) { int m = tmp.indexOf("charset="); if (m != -1) { strencoding = tmp.substring(m + 8).replace("]", ""); return strencoding; } } } /** * 通过解析meta得到网页编码 */ // 获取网页源码(英文字符和数字不会乱码,所以可以得到正确<meta/>区域) StringBuffer sb = new StringBuffer(); String line; try { BufferedReader in = new BufferedReader(new InputStreamReader(url .openStream())); while ((line = in.readLine()) != null) { sb.append(line); } in.close(); } catch (Exception e) { // Report any errors that arise System.err.println(e); System.err .println("Usage: java HttpClient <URL> [<filename>]"); } String htmlcode = sb.toString(); // 解析html源码,取出<meta />区域,并取出charset String strbegin = "<meta"; String strend = ">"; String strtmp; int begin = htmlcode.indexOf(strbegin); int end = -1; int inttmp; while (begin > -1) { end = htmlcode.substring(begin).indexOf(strend); if (begin > -1 && end > -1) { strtmp = htmlcode.substring(begin, begin + end).toLowerCase(); inttmp = strtmp.indexOf("charset"); if (inttmp > -1) { strencoding = strtmp.substring(inttmp + 7, end).replace( "=", "").replace("/", "").replace("\"", "") .replace("\'", "").replace(" ", ""); return strencoding; } } htmlcode = htmlcode.substring(begin); begin = htmlcode.indexOf(strbegin); } /** * 分析字节得到网页编码 */ strencoding = getFileEncoding(url); // 设置默认网页字符编码 if (strencoding == null) { strencoding = "GBK"; } return strencoding; } /** * *<br> * 方法说明:通过网页内容识别网页编码 * *<br> * 输入参数:strUrl 网页链接; timeout 超时设置 * *<br> * 返回类型:网页编码 */ public static String getFileEncoding(URL url) { java.nio.charset.Charset charset = null; try { charset = detector.detectCodepage(url); } catch (Exception e) { System.out.println(e.getClass() + "分析" + "编码失败"); } if (charset != null) return charset.name(); return null; } } 可运行时总是出现java.lang.NoClassDefFoundError: org/mozilla/intl/chardet/nsICharsetDetectionObserver的错误 !!!!

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> ```

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

javaWeb图书馆管理系统源码mysql版本

系统介绍 图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

TTP229触摸代码以及触摸返回值处理

自己总结的ttp229触摸代码,触摸代码以及触摸按键处理

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

快速排序---(面试碰到过好几次)

原理:    快速排序,说白了就是给基准数据找其正确索引位置的过程.    如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾.    首先从后半部分开始,如果扫描到的值大于基准数据就让high减1,如果发现有元素比该基准数据的值小(如上图中18&amp;lt...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/27513,点击右下方课程资料、代码、课件等打包下载

HTML期末大作业

这是我自己做的HTML期末大作业,花了很多时间,稍加修改就可以作为自己的作业了,而且也可以作为学习参考

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

UnityLicence

UnityLicence

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

超详细MySQL安装及基本使用教程

一、下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL。 点击进入后的首页如下:  然后点击downloads,community,选择MySQL Community Server。如下图:  滑到下面,找到Recommended Download,然后点击go to download page。如下图:  点击download进入下载页面选择No...

一学即懂的计算机视觉(第一季)

图像处理和计算机视觉的课程大家已经看过很多,但总有“听不透”,“用不了”的感觉。课程致力于创建人人都能听的懂的计算机视觉,通过生动、细腻的讲解配合实战演练,让学生真正学懂、用会。 【超实用课程内容】 课程内容分为三篇,包括视觉系统构成,图像处理基础,特征提取与描述,运动跟踪,位姿估计,三维重构等内容。课程理论与实战结合,注重教学内容的可视化和工程实践,为人工智能视觉研发及算法工程师等相关高薪职位就业打下坚实基础。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/26281 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,但是大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/26281,点击右下方课程资料、代码、课件等打包下载

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

爬取妹子图片(简单入门)

安装第三方请求库 requests 被网站禁止了访问 原因是我们是Python过来的 重新给一段 可能还是存在用不了,使用网页的 编写代码 上面注意看匹配内容 User-Agent:请求对象 AppleWebKit:请求内核 Chrome浏览器 //请求网页 import requests import re //正则表达式 就是去不规则的网页里面提取有规律的信息 headers = { 'User-Agent':'存放浏览器里面的' } response = requests.get

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

立方体线框模型透视投影 (计算机图形学实验)

计算机图形学实验 立方体线框模型透视投影 的可执行文件,亲测可运行,若需报告可以联系我,期待和各位交流

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

软件测试入门、SQL、性能测试、测试管理工具

软件测试2小时入门,让您快速了解软件测试基本知识,有系统的了解; SQL一小时,让您快速理解和掌握SQL基本语法 jmeter性能测试 ,让您快速了解主流来源性能测试工具jmeter 测试管理工具-禅道,让您快速学会禅道的使用,学会测试项目、用例、缺陷的管理、

SAS9.4 SID(win 64位) 可使用至2021年5月

SAS 9.4 最新SID可使用至2021年5月,之前的2020年4月30日即将过期,过期后再更换SID会麻烦些,请及时更新SID。

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问