• 关于

    html try

    的搜索结果

问题

LINUX下运行radar报错

刘小喵喵 2019-12-01 20:12:09 1122 浏览量 回答数 1

问题

nginx配置求解 : 配置报错 

kun坤 2020-06-04 13:07:46 8 浏览量 回答数 1

回答

当您访问html.text时,请求会尝试确定字符编码,以便它可以正确解码从服务器接收到的原始字节。timesofindia发送的content-type头是text / html; charset = iso-8859-1,这是Requests附带的内容。字符编码几乎可以肯定是utf-8。 您可以通过在访问html.text之前将html的encoding设置为utf-8来解决此问题: try: html =requests.get(url) html.encoding = 'utf-8' except: print("no conection") try: soup = BS(html.text,'html.parser') except: print("pasre error") print(soup.find('div',{'class':'_3WlLe clearfix'}).get_text()) 或将html.content解码为utf-8,然后将其传递到BS而不是html.text: try: html =requests.get(url) except: print("no conection") try: soup = BS(html.content.decode('utf-8'),'html.parser') except: print("pasre error") print(soup.find('div',{'class':'_3WlLe clearfix'}).get_text()) 我强烈建议您学习字符编码和Unicode。很容易被它绊倒。我们都去过那里。 字符,符号和Unicode奇迹-Tom Scott和Sean Riley撰写的Computerphile David C. Zentgraf绝对需要每个程序员真正了解与文本一起使用的编码和字符集 每个软件开发人员绝对,肯定必须绝对了解Unicode和字符集(无借口!)作者:Joel Spolsky 回答来源:stackoverflow

is大龙 2020-03-23 21:42:28 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

大家用 htmlparser提取文本内容时 有没有出现内存溢出呀:报错

kun坤 2020-06-07 22:04:42 0 浏览量 回答数 1

回答

json没有单个和json数组之分,只有json里是数组还是字典的分别,楼主给出的数据可见该json数据是由一个数组包裹着5个字典组成,解析方法如下:let resultArray = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as? Array resultArray则为包括着5个字典的数组。还有目前swift2 后 JSONObjectWithData操作需要try catch :写法1:var resultDict: NSArray? do { resultDict = try NSJSONSerialization.JSONObjectWithData(nonNilData, options: NSJSONReadingOptions.MutableContainers) as? NSArray } catch { debugPrint("JSONObjectWithDataError: (error)") }写法2:var resultDict = try? NSJSONSerialization.JSONObjectWithData(nonNilData, options: NSJSONReadingOptions.MutableContainers) as? NSArray建议json解析完后转换成json的真实类型,不要继续拿着anyObject来使用: 例:如果json为字典 则: let MyDict = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as? Dictionary可以用swiftjson这个第三方模块 封装很好http://www.cocoachina.com/ios/20140921/9703.html

杨冬芳 2019-12-02 03:04:49 0 浏览量 回答数 0

问题

Beautiful Soup HTML解析

is大龙 2020-03-23 21:42:20 11 浏览量 回答数 1

问题

小白用python写了一个爬虫,但是一直报错,求解决?报错

爱吃鱼的程序员 2020-06-06 20:51:31 0 浏览量 回答数 1

问题

我从txt文本中读取中文文本然后存到mysql数据库中,中文变成了乱码!

爵霸 2019-12-01 19:54:27 1013 浏览量 回答数 1

回答

假设它BasicDataSource是来自DBCP的,那么是的,您正在使用连接池。但是,您将在每次获取连接时重新创建另一个连接池。您并不是真正地在同一个池中合并连接。您只需在应用程序启动时创建一次连接池,并从中获取每个连接。您也不应将连接保留为实例变量。您还应该关闭连接,语句和结果集,以确保在异常情况下也正确关闭了资源。Java 7的try-with-resources语句对此很有帮助,它会在try块完成后自动关闭资源。 这是一个小的重写: public final class Database { private static final BasicDataSource dataSource = new BasicDataSource(); static { dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/data"); dataSource.setUsername("USERNAME"); dataSource.setPassword("PASSWORD"); } private Database() { // } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } } (如有必要,可以将其重构为抽象工厂以提高可插入性) 和 private static final String SQL_EXIST = "SELECT * FROM users WHERE username=? AND password=?"; public boolean exist(User user) throws SQLException { boolean exist = false; try ( Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_EXIST); ) { statement.setString(1, user.getUsername()); statement.setString(2, user.getPassword()); try (ResultSet resultSet = preparedStatement.executeQuery()) { exist = resultSet.next(); } } return exist; } 使用方法如下: try { if (!userDAO.exist(username, password)) { request.setAttribute("message", "Unknown login. Try again."); request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); } else { request.getSession().setAttribute("user", username); response.sendRedirect("userhome"); } } catch (SQLException e) { throw new ServletException("DB error", e); } 但是,在实际的Java EE环境中,您应该将的创建委托DataSource给容器/应用程序服务器,并从JNDI获取它。如果是Tomcat,请另参见本文档的示例:http : //tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html来源:stack overflow

保持可爱mmm 2020-05-17 11:33:27 0 浏览量 回答数 0

问题

Laravel Nginx 除 `/` 外所有路由 404

a123456678 2019-12-01 20:07:35 1549 浏览量 回答数 2

问题

按照云栖社区阿里云机器学习PAI的教程,cirfar-10运行的时候报错

祁同伟 2019-12-01 20:27:28 1762 浏览量 回答数 1

问题

新手求帮助。 关于PAI平台 mnist 案例bug

shenzhuo 2019-12-01 19:23:41 1286 浏览量 回答数 2

问题

运行postDelayed处理程序时冻结AsynchTask

LiuWH 2020-01-06 22:27:35 2 浏览量 回答数 1

问题

linux下nginx解析本地虚拟域名

a123456678 2019-12-01 20:08:54 1149 浏览量 回答数 1

问题

TF图片分类例子运行错误,提示couldn't connect to server

domini 2019-12-01 20:26:39 1291 浏览量 回答数 0

问题

如何把php应用配置到nginx二级域名

macworks 2019-12-01 20:55:21 4476 浏览量 回答数 2

问题

Algo Job Failed-System Error-Failed to execute system command

tfs 2019-12-01 19:22:06 2025 浏览量 回答数 1

问题

如何获取表的所有行,而不仅仅是第一行?

is大龙 2020-03-24 09:44:51 2 浏览量 回答数 1

回答

RSA的Java实现不能一次加密很大的字符,自己处理了一下,见下面的代码。  Base64编码类用的是一个Public domain Base64 for java http://iharder.sourceforge.net/current/java/base64/  其他的保存公钥到文件等简单的实现,就不详细说了,看代码吧。  ==============================================  import java.security.*;  import java.security.spec.PKCS8EncodedKeySpec;  import java.security.spec.X509EncodedKeySpec;  import java.util.HashMap;  import java.util.Map;  import javax.crypto.*;  import java.io.*;  public class Encryptor {  private static final String KEY_FILENAME = "c:\\mykey.dat";  private static final String OTHERS_KEY_FILENAME = "c:\\Otherskey.dat";  // private static final int KEY_SIZE = 1024;  // private static final int BLOCK_SIZE = 117;  // private static final int OUTPUT_BLOCK_SIZE = 128;  private static final int KEY_SIZE = 2048; //RSA key 是多少位的  private static final int BLOCK_SIZE = 245; //一次RSA加密操作所允许的最大长度  //这个值与 KEY_SIZE 已经padding方法有关。因为 1024的key的输出是128,2048key输出是256字节  //可能11个字节用于保存padding信息了,所以最多可用的就只有245字节了。  private static final int OUTPUT_BLOCK_SIZE = 256;  private SecureRandom secrand;  private Cipher rsaCipher;  private KeyPair keys;  private Map<String, Key> allUserKeys;  public Encryptor() throws Exception {  try {  allUserKeys = new HashMap<String, Key>();  secrand = new SecureRandom();  //SunJCE Provider 中只支持ECB mode,试了一下只有PKCS1PADDING可以直接还原原始数据,  //NOPadding导致解压出来的都是blocksize长度的数据,还要自己处理  //参见 http://java.sun.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJCEProvider  //  //另外根据 Open-JDK-6.b17-src( http://www.docjar.com/html/api/com/sun/crypto/provider/RSACipher.java.html)  // 中代码的注释,使用RSA来加密大量数据不是一种标准的用法。所以现有实现一次doFinal调用之进行一个RSA操作,  //如果用doFinal来加密超过的一个操作所允许的长度数据将抛出异常。  //根据keysize的长度,典型的1024个长度的key和PKCS1PADDING一起使用时  //一次doFinal调用只能加密117个byte的数据。(NOPadding 和1024 keysize时128个字节长度)  //(2048长度的key和PKCS1PADDING 最多允许245字节一次)  //想用来加密大量数据的只能自己用其他办法实现了。可能RSA加密速度比较慢吧,要用AES才行  rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");  } catch (NoSuchAlgorithmException e) {  e.printStackTrace();  } catch (NoSuchPaddingException e) {  e.printStackTrace();  throw e;  }  ObjectInputStream in;  try {  in = new ObjectInputStream(new FileInputStream(KEY_FILENAME));  } catch (FileNotFoundException e) {  if (false == GenerateKeys())  {  throw e;  }  LoadKeys();  return;  }  keys = (KeyPair) in.readObject();  in.close();  LoadKeys();  }  /*  * 生成自己的公钥和私钥  */  private Boolean GenerateKeys() {  try {  KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");  // secrand = new SecureRandom();  // sedSeed之后会造成 生成的密钥都是一样的  // secrand.setSeed("chatencrptor".getBytes()); // 初始化随机产生器  //key长度至少512长度,不过好像说现在用2048才算比较安全的了  keygen.initialize(KEY_SIZE, secrand); // 初始化密钥生成器  keys = keygen.generateKeyPair(); // 生成密钥组  AddKey("me", EncodeKey(keys.getPublic()));  } catch (NoSuchAlgorithmException e) {  e.printStackTrace();  return false;  }  ObjectOutputStream out;  try {  out = new ObjectOutputStream(new FileOutputStream(KEY_FILENAME));  } catch (IOException e) {  e.printStackTrace();  return false;  }  try {  out.writeObject(keys);  } catch (IOException e) {  e.printStackTrace();  return false;  } finally {  try {  out.close();  } catch (IOException e) {  e.printStackTrace();  return false;  }  }  return true;  }public String EncryptMessage(String toUser, String Message) throws IOException {  Key pubkey = allUserKeys.get(toUser);  if ( pubkey == null )  {  throw new IOException("NoKeyForThisUser") ;  }  try {  //PublicKey pubkey = keys.getPublic();  rsaCipher.init(Cipher.ENCRYPT_MODE, pubkey, secrand);  //System.out.println(rsaCipher.getBlockSize()); 返回0,非block 加密算法来的。  //System.out.println(Message.getBytes("utf-8").length);  //byte[] encryptedData = rsaCipher.doFinal(Message.getBytes("utf-8"));  byte[] data = Message.getBytes("utf-8");  int blocks = data.length / BLOCK_SIZE ;  int lastBlockSize = data.length % BLOCK_SIZE ;  byte [] encryptedData = new byte[ (lastBlockSize == 0 ? blocks : blocks + 1)* OUTPUT_BLOCK_SIZE];  for (int i=0; i < blocks; i++)  {  //int thisBlockSize = ( i + 1 ) * BLOCK_SIZE > data.length ? data.length - i * BLOCK_SIZE : BLOCK_SIZE ;  rsaCipher.doFinal(data,i * BLOCK_SIZE, BLOCK_SIZE, encryptedData ,i * OUTPUT_BLOCK_SIZE);  }  if (lastBlockSize != 0 ){  rsaCipher.doFinal(data, blocks * BLOCK_SIZE, lastBlockSize,encryptedData ,blocks * OUTPUT_BLOCK_SIZE);  }  //System.out.println(encrypted.length); 如果要机密的数据不足128/256字节,加密后补全成为变为256长度的。  //数量比较小时,Base64.GZIP产生的长度更长,没什么优势  //System.out.println(Base64.encodeBytes(encrypted,Base64.GZIP).length());  //System.out.println(Base64.encodeBytes(encrypted).length());  //System.out.println (rsaCipher.getOutputSize(30));  //这个getOutputSize 只对 输入小于最大的block时才能得到正确的结果。其实就是补全 数据为128/256 字节  return Base64.encodeBytes(encryptedData);  } catch (InvalidKeyException e) {  e.printStackTrace();  throw new IOException("InvalidKey") ;  }catch (ShortBufferException e) {  e.printStackTrace();  throw new IOException("ShortBuffer") ;  }  catch (UnsupportedEncodingException e) {  e.printStackTrace();  throw new IOException("UnsupportedEncoding") ;  } catch (IllegalBlockSizeException e) {  e.printStackTrace();  throw new IOException("IllegalBlockSize") ;  } catch (BadPaddingException e) {  e.printStackTrace();  throw new IOException("BadPadding") ;  }finally {  //catch 中 return 或者throw之前都会先调用一下这里  }  }  public String DecryptMessage(String Message) throws IOException {  byte[] decoded = Base64.decode(Message);  PrivateKey prikey = keys.getPrivate();  try {  rsaCipher.init(Cipher.DECRYPT_MODE, prikey, secrand);  int blocks = decoded.length / OUTPUT_BLOCK_SIZE;  ByteArrayOutputStream decodedStream = new ByteArrayOutputStream(decoded.length);  for (int i =0 ;i < blocks ; i ++ )  {  decodedStream.write (rsaCipher.doFinal(decoded,i * OUTPUT_BLOCK_SIZE, OUTPUT_BLOCK_SIZE));  }  return new String(decodedStream.toByteArray(), "UTF-8");  } catch (InvalidKeyException e) {  e.printStackTrace();  throw new IOException("InvalidKey");  } catch (UnsupportedEncodingException e) {  e.printStackTrace();  throw new IOException("UnsupportedEncoding");  } catch (IllegalBlockSizeException e) {  e.printStackTrace();  throw new IOException("IllegalBlockSize");  } catch (BadPaddingException e) {  e.printStackTrace();  throw new IOException("BadPadding");  } finally {  // catch 中 return 或者throw之前都会先调用一下这里。  }  }  public boolean AddKey(String user, String key) {  PublicKey publickey;  try {  publickey = DecodePublicKey(key);  } catch (Exception e) {  return false;  }  allUserKeys.put(user, publickey);  SaveKeys();  return true;  }private boolean LoadKeys() {  BufferedReader input;  try {  input = new BufferedReader(new InputStreamReader(  new FileInputStream(OTHERS_KEY_FILENAME)));  } catch (FileNotFoundException e1) {  // e1.printStackTrace();  return false;  }

琴瑟 2019-12-02 01:26:51 0 浏览量 回答数 0

回答

换api:NetworkInterface.getNetworkInterfaces() ,再做过滤,代码如下: 转载:Java获得系统的外网IPhttps://www.cnblogs.com/kagome2014/p/6428325.html import java.net.Inet4Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration; /** 系统工具类,用于获取系统相关信息 Created by kagome.*/ public class CustomSystemUtil { public static String INTRANET_IP = getIntranetIp(); // 内网IP public static String INTERNET_IP = getInternetIp(); // 外网IP private CustomSystemUtil(){} /** * 获得内网IP * @return 内网IP */ private static String getIntranetIp(){ try{ return InetAddress.getLocalHost().getHostAddress(); } catch(Exception e){ throw new RuntimeException(e); } } /** * 获得外网IP * @return 外网IP */ private static String getInternetIp(){ try{ Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; Enumeration<InetAddress> addrs; while (networks.hasMoreElements()) { addrs = networks.nextElement().getInetAddresses(); while (addrs.hasMoreElements()) { ip = addrs.nextElement(); if (ip != null && ip instanceof Inet4Address && ip.isSiteLocalAddress() && !ip.getHostAddress().equals(INTRANET_IP)) { return ip.getHostAddress(); } } } // 如果没有外网IP,就返回内网IP return INTRANET_IP; } catch(Exception e){ throw new RuntimeException(e); } } } 换api:NetworkInterface.getNetworkInterfaces() ,再做过滤,代码如下: 转载:Java获得系统的外网IPhttps://www.cnblogs.com/kagome2014/p/6428325.html import java.net.Inet4Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration; /** 系统工具类,用于获取系统相关信息 Created by kagome.*/ public class CustomSystemUtil { public static String INTRANET_IP = getIntranetIp(); // 内网IP public static String INTERNET_IP = getInternetIp(); // 外网IP private CustomSystemUtil(){} /** * 获得内网IP * @return 内网IP */ private static String getIntranetIp(){ try{ return InetAddress.getLocalHost().getHostAddress(); } catch(Exception e){ throw new RuntimeException(e); } } /** * 获得外网IP * @return 外网IP */ private static String getInternetIp(){ try{ Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; Enumeration<InetAddress> addrs; while (networks.hasMoreElements()) { addrs = networks.nextElement().getInetAddresses(); while (addrs.hasMoreElements()) { ip = addrs.nextElement(); if (ip != null && ip instanceof Inet4Address && ip.isSiteLocalAddress() && !ip.getHostAddress().equals(INTRANET_IP)) { return ip.getHostAddress(); } } } // 如果没有外网IP,就返回内网IP return INTRANET_IP; } catch(Exception e){ throw new RuntimeException(e); } } }

bloomberg 2019-12-02 01:52:32 0 浏览量 回答数 0

问题

angularjs,代码完全从w3cschool里爬下来的但是不起作用

小旋风柴进 2019-12-01 20:18:20 1031 浏览量 回答数 1

问题

Java服務器HTML5 WebSocket握手失敗咋辦?

爵霸 2019-12-01 19:39:16 1195 浏览量 回答数 0

回答

应该是电源管理的问题 ###### 引用来自“_Yud”的评论应该是电源管理的问题 读了一遍REHL 7的电源管理文档,没写到这个问题啊,只说可以挂机,休眠之类的######你可以试下这样做,当你ping不能的时间,不需要登录,只需要进入虚拟机,当出现字符界面时,再从外面ping,看能不能通.能通说明还是电源及性能设置问题.###### You can try running the machine with the kernel option "pcie_aspm=off" and see if that helps and also try to disable C-States or Power Saving all together in the BIOS. More Details here:######http://lists.centos.org/pipermail/centos/2014-January/140154.html######同样问题,求如何解决?######回复 @新 : o.o######我后来发现似乎是虚拟机网卡选择的问题,换了一个网卡就ok了

kun坤 2020-06-04 11:19:26 0 浏览量 回答数 0

回答

跨域了,并且 http://www.runoob.com/try/angularjs/data/Customers_JSON.php 这个地址不允许跨域请求,当然会报错。可以用雅虎的YQL,Yahoo这个地址允许跨域请求,不过注意设置Access-Control-Allow-Origin为*允许跨域,IE跨域对象是XDomaiRequest对象,XMLHttpRequest对象只有IE11才支持 <!DOCTYPE html> <html> <body> <div ng-app="" ng-controller="customersController"> <ul> <li ng-repeat="x in names"> {{ x.Name + ', ' + x.Country }} </li> </ul> </div> <script> function customersController($scope, $http) { $http({ method:'GET', url: "http://query.yahooapis.com/v1/public/yql", params: { q: "select * from json where url=\"http://www.runoob.com/try/angularjs/data/Customers_JSON.php\"", format: "json" } }).success(function (response) { console.log(response) $scope.names = response.query.results.json.json; }); } </script> <script src="http://apps.bdimg.com/libs/angular.js/1.2.15/angular.min.js"></script> </body> </html>

杨冬芳 2019-12-02 03:03:58 0 浏览量 回答数 0

回答

“Script error.”有时也被称为跨域错误。当网站请求并执行一个托管在第三方域名下的脚本时,就可能遇到该错误。最常见的情形是使用 CDN 托管 JS 资源。 为了更好地理解,假设以下 HTML 页面部署在 http://test.com 域名下: 假设 foo 方法调用了一个未定义的 bar 方法: // another-domain.com/app.js function foo() { bar(); // ReferenceError: bar is not a function } 页面运行之后,捕获到的异常信息如下: "Script error.", "", 0, 0, undefined 其实这并不是一个 JavaScript Bug。出于安全考虑,浏览器会刻意隐藏其他域的 JS 文件抛出的具体错误信息,这样做可以有效避免敏感信息无意中被不受控制的第三方脚本捕获。因此,浏览器只允许同域下的脚本捕获具体错误信息,而其他脚本只知道发生了一个错误,但无法获知错误的具体内容。 请参考 Webkit 源码: bool ScriptExecutionContext::sanitizeScriptError(String& errorMessage, int& lineNumber, String& sourceURL) { KURL targetURL = completeURL(sourceURL); if (securityOrigin()->canRequest(targetURL)) return false; errorMessage = "Script error."; sourceURL = String(); lineNumber = 0; return true; } 了解了 “Script error.”的产生原因之后,接下来看看如何解决这个问题。 解法 1:开启 CORS(Cross Origin Resource Sharing,跨域资源共享) 为了跨域捕获 JavaScript 异常,可执行以下两个步骤: 添加 crossorigin="anonymous" 属性。 此步骤的作用是告知浏览器以匿名方式获取目标脚本。这意味着请求脚本时不会向服务端发送潜在的用户身份信息(例如 Cookies、HTTP 证书等)。 添加跨域 HTTP 响应头。 Access-Control-Allow-Origin: * 或者 Access-Control-Allow-Origin: http://test.com 说明 大部分主流 CDN 默认添加了 Access-Control-Allow-Origin 属性。以下是阿里 CDN 的示例: $ curl --head https://retcode.alicdn.com/retcode/bl.js | grep -i "access-control-allow-origin" => access-control-allow-origin: * 完成上述两步之后,即可通过 window.onerror 捕获跨域脚本的报错信息。回到之前的案例,页面重新运行后,捕获到的结果是: => "ReferenceError: bar is not defined", "http://another-domain.com/app.js", 2, 1, [Object Error] 解法 2(可选):try catch 难以在 HTTP 请求响应头中添加跨域属性时,还可以考虑 try catch 这个备选方案。 在之前的示例 HTML 页面中加入 try catch: 再次运行,输出结果如下: => ReferenceError: bar is not defined at foo (http://another-domain.com/app.js:2:3) at http://test.com/:15:3 => "Script error.", "", 0, 0, undefined 可见 try catch 中的 Console 语句输出了完整的信息,但 window.onerror 中只能捕获“Script error”。根据这个特点,可以在 catch 语句中手动上报捕获的异常。 // 参考本文末尾的相关文档“前端监控 API 使用指南” __bl.error(error, pos); 说明 尽管 try catch 方法可以捕获部分异常,但推荐采用解法 1。

保持可爱mmm 2020-03-28 20:31:54 0 浏览量 回答数 0

回答

引用来自“lietome”的答案 提示很明确,你没有释放连接,我在官方的Samples里面找到一段代码应该可以帮助你 CloseableHttpClient httpclient = HttpClients.createDefault(); try { HttpGet httpget = new HttpGet("http://www.apache.org/"); // Execute HTTP request CloseableHttpResponse response = httpclient.execute(httpget); try { // Get hold of the response entity HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need // to bother about connection release if (entity != null) { InputStream instream = entity.getContent(); try { instream.read(); // do something useful with the response } catch (IOException ex) { // In case of an IOException the connection will be released // back to the connection manager automatically throw ex; } finally { // Closing the input stream will trigger connection release instream.close(); } } } finally { response.close(); } } finally { httpclient.close(); } 有几种方式,第一种类似长连接,个人非常不喜欢这个,参考 http://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/connmgmt.html,第二中方式是使用Cookies,浏览器不就是这么做的么,参考 http://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/statemgmt.html,官方文档都有说明哈 ###### 引用来自“徐春鹏”的答案 引用来自“名字是什么能吃吗”的答案 请求结束后调用get.abort或者EntityUtils.consume试试 这个就成吧 忽略内容 @nice_so  : client= new DefaultHttpClient(); try { HttpResponse execute = client.execute(new HttpGet(GetConfig .getValue("login_url"))); EntityUtils.consume(execute.getEntity()); CookieStore cookieStore = client.getCookieStore(); List<Cookie> cookies = cookieStore.getCookies(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 这样能获得cookie 保存起来就行了 ;如果不再去new一个HttpClient新对象的话httpclient不用去刻意保存cookie, 登录成功后 ,直接拿这个client去get post 其他地址就行 ######请求结束后调用get.abort或者EntityUtils.consume试试######不行的,会报错,就是上面的那个错误。 可以看我上面的代码,就是你说的那样######回复 @nice_so : 用发登录请求的HttpClient对象再次请求就行啊######我的意思是在 第一次请求结束后,怎么保持登录状态进行第二次请求。 就像用户登录了之后进行操作一样。######不知道你用的哪个版本,4.x之后改动挺多的,和你这个问题相关的比如PoolingClientConnectionManager代替了ThreadSafeClientConnManager、EntityUtils.consume代替了consumeContent ,用连接池维护或者每次打开entity之后consume ######回复 @nice_so : consume又不是释放连接,销毁你打开的entity而已,你的client还是那个就行######我的意思是在 第一次请求结束后,怎么保持登录状态进行第二次请求。 释放连接,第二次请求的时候又没登录, 不释放连接,就又报上面的错误。 就像用户登录了之后进行操作一样。###### 提示很明确,你没有释放连接,我在官方的Samples里面找到一段代码应该可以帮助你 CloseableHttpClient httpclient = HttpClients.createDefault(); try { HttpGet httpget = new HttpGet("http://www.apache.org/"); // Execute HTTP request CloseableHttpResponse response = httpclient.execute(httpget); try { // Get hold of the response entity HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need // to bother about connection release if (entity != null) { InputStream instream = entity.getContent(); try { instream.read(); // do something useful with the response } catch (IOException ex) { // In case of an IOException the connection will be released // back to the connection manager automatically throw ex; } finally { // Closing the input stream will trigger connection release instream.close(); } } } finally { response.close(); } } finally { httpclient.close(); } ######那怎么让程序记住自己的登录状态,继而去请求下一个需要登录才能请求的页面呢######回复 @nice_so : 两个请求就得用两个连接,如何连接的是httpclient封装在内部的,外部不做此控制,就像你用普通jsp请求一样,你面向的是一次次的请求,而不是连接,而且每次请求必须释放,不然端口一直占用着######我的意思是在 第一次请求结束后,怎么保持登录状态进行第二次请求。 释放连接,第二次请求的时候又没登录, 不释放连接,就又报上面的错误。 就像用户登录了之后进行操作一样。###### 引用来自“名字是什么能吃吗”的答案 请求结束后调用get.abort或者EntityUtils.consume试试 这个就成吧 忽略内容 ######我的意思是在 第一次请求结束后,怎么保持登录状态进行第二次请求。 释放连接,第二次请求的时候又没登录, 不释放连接,就又报上面的错误。 就像用户登录了之后进行操作一样。######感谢答主,碰到同样的问题,我这边关闭response就行了######http请求都是分开请求的,但是两个http请求可以共用一个Socket连接 你需要的解决的是,怎么在第二次请求的时候,带上第一次请求返回的sessionid

kun坤 2020-05-29 13:10:35 0 浏览量 回答数 0

回答

ftp上传我不知道·· 如果是文件上传到服务器的话希望这代码能起到一定的作用· 在servlet里面写: // 保存文件到服务器中 String fileName = null; try { response.setContentType("text/html; charset=UTF-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4096); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(maxPostSize); List<FileItem> fileItems = upload.parseRequest(request); Iterator<FileItem> iter = fileItems.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (!item.isFormField()) { fileName = item.getName(); try { item.write(new File(uploadPath + fileName)); } catch (Exception e) { e.printStackTrace(); } } } } catch (FileUploadException e) { e.printStackTrace(); System.out.println("保存文件到服务器失败"); errorElement.setText(ErrorCode.VVLIVE_UPLOADFILD + ""); } “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:16:52 0 浏览量 回答数 0

问题

在Robot Framework中使用Python登录进行登录

祖安文状元 2020-02-22 16:03:51 0 浏览量 回答数 1

问题

在Robot Framework中使用Python登录进行登录

祖安文状元 2020-02-22 16:04:44 0 浏览量 回答数 1

回答

楼主是说这个么:http://www.di.unipi.it/~nids/docs/longjump_try_trow_catch.html ?######cool###### 完全没看懂的路过。。。 try catch是C的关键字不?如果不是,楼主的代码如何通过编译? ######回复 @铂金眼 : 感谢提醒,是粗心了。。。######小心看程序的开头,我这个门外汉都看出来了!###### 引用来自“ZeroOne”的评论 完全没看懂的路过。。。 try catch是C的关键字不?如果不是,楼主的代码如何通过编译? try和catch不是C语言的关键字,而是我定义的几个宏,看代码上半部分。 ######楼主这么急着打脸,居心何在?######回复 @young7 : 因为没人@ 他,;-p######尚未见半桶水兄现身,以他的性格,看到跟他意见相左的应该又要跳出来作指点江山状了(哈个屁什么的),至今尚未见到身影,实乃奇怪###### 引用来自“纠结名字”的评论楼主这么急着打脸,居心何在? 你猜?######回复 @young7 : 哈######我猜楼主抽得一手好脸 ,哈(怎么我也说哈,难道我也中毒了?)###### 引用来自“纠结名字”的评论 楼主这么急着打脸,居心何在? 引用来自“redraiment”的评论 你猜? 楼主,我不懂C,你不要骗我,这个能不能完全替代goto?另外,如果可以,你还能把finally加上吗?###### 引用来自“纠结名字”的评论 引用来自“纠结名字”的评论 楼主这么急着打脸,居心何在? 引用来自“redraiment”的评论 你猜? 楼主,我不懂C,你不要骗我,这个能不能完全替代goto?另外,如果可以,你还能把finally加上吗? Java里没有goto,不照样写了这么多年。######回复 @Lyuans : Java中goto只是保留的关键字,没有goto语句。######谁说java没有goto###### 引用来自“纠结名字”的评论 引用来自“纠结名字”的评论 楼主这么急着打脸,居心何在? 引用来自“redraiment”的评论 你猜? 楼主,我不懂C,你不要骗我,这个能不能完全替代goto?另外,如果可以,你还能把finally加上吗? 引用来自“redraiment”的评论Java里没有goto,不照样写了这么多年。 java帮忙做了很多才废掉goto的,我是担心你这代码的健壮性。。。###### 引用来自“纠结名字”的评论 引用来自“纠结名字”的评论 楼主这么急着打脸,居心何在? 引用来自“redraiment”的评论 你猜? 楼主,我不懂C,你不要骗我,这个能不能完全替代goto?另外,如果可以,你还能把finally加上吗? 引用来自“redraiment”的评论Java里没有goto,不照样写了这么多年。 引用来自“纠结名字”的评论java帮忙做了很多才废掉goto的,我是担心你这代码的健壮性。。。 如果要完全和Java的try-catch保持一致,那的确还要做些工作,例如catch能捕捉到throw出来的对象。 这边只是演示如何在C语言里实现try-catch,需要其他的功能可以在这段代码的基础上继续改进。

爱吃鱼的程序员 2020-06-03 17:12:56 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 阿里云双十一主会场 阿里云双十一新人会场 1024程序员加油包 阿里云双十一拼团会场 场景化解决方案 阿里云双十一直播大厅