症状是get验证没问题,post的时候会回跳到带ticket的get地址,当然本地不支持get就产生错误了。
网上可能遇到的不多,有的回答比较坑,也可能跟我的不一致,比如
这个答案反正我这无效。
解决办法也比较简单,其实就是每个页面都需要带个ticket
post地址也需要,只要在表单action的地址中增加参数ticket就好了
比如原来post到 http://do.action 那么就改成 http://do.action?ticket=
就好了。
又一个WordPress站点
症状是get验证没问题,post的时候会回跳到带ticket的get地址,当然本地不支持get就产生错误了。
网上可能遇到的不多,有的回答比较坑,也可能跟我的不一致,比如
这个答案反正我这无效。
解决办法也比较简单,其实就是每个页面都需要带个ticket
post地址也需要,只要在表单action的地址中增加参数ticket就好了
比如原来post到 http://do.action 那么就改成 http://do.action?ticket=
就好了。
提示如:
[ERROR] Plugin org.codehaus.mojo:build-helper-maven-plugin:1.9.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.codehaus.mojo:build-helper-maven-plugin:jar:1.9.1: Could not transfer artifact org.codehaus.mojo:build-helper-maven-plugin:pom:1.9.1 from/to central (https://repo.maven.apache.org/maven2): java.security.ProviderException: java.security.KeyException -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
主要原因是因为源地址是https地址,然而当前系统版本比较老,不支持… 网上大多解决办法是做个代理或者用各种办法把https转成http.
也尝试用使用自安装的maven和把openjdk换成官方jdk然并卵.
最简单的办法就是更新下软件版本,我的是centos, yum update!
完美
spring mvc cannot reliably process ‘persist’ call
spring mvc +jpa 出现了这个问题, 也根据网上加过 @PersistenceContext @Transactional 这些注解,都没啥效果.
我的解决方式, 根据配置文件
原来的
@Autowired
EntityManager entityManager;
改成了
@Autowired
private EntityManagerFactory entityManagerFactory;
之后使用的时候
entityManagerFactory.createEntityManager()
就成功了,但这种方法需要自己关闭下EntityManager
之前没关注过, 理解上系统时间是UTC+8,并且new Date()添加到数据库是对的就正常了。
但是:发现如果是录入时间 比如字符串 “2016-09-09 00:00:00” 那么转换成Date就变成了CST时间,这样再录入数据库就会错误。
会是 2016-09-09 00:00:00 CST
解决方法:修改数据库时区就好了
环境,测试demo,远程hbase,本地client
javaclient调用hbase的时候提示xxx.ip not in list神马的,原因是client会去拿server的主机名和hosts当地址,可能我配置也有问题.
这种情况改本地hosts都没用
解决办法是改server的hosts
主机名对应ip 必须是client可访问的公网地址.
swagger +spring+junit冲突
junit的测试跑不起来,主要原因是引用的注解造成的:
@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages ={"xx"})
public class SwaggerConfig {
...
}
我的解决办法是把swaper配置文件分离出来,junit不调用.
原先配置文件只有默认的两个:
/WEB-INF/spring-servlet.xml
/WEB-INF/applicationContext.xml
修改后增加一个
/WEB-INF/spring-swagger.xml
并改成在web.xml导入配置文件
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/spring-servlet.xml /WEB-INF/applicationContext.xml /WEB-INF/spring-swagger.xml </param-value> </context-param>
如:
需要注意的点还有文件名需要跟path一致, 如上需要配置文件名是ot.xml, 否则会404错误
wget http://cn2.php.net/get/php-5.6.22.tar.gz/from/this/mirror
tar zxvf php-5.6.22.tar.gz
cd php-5.6.22
./configure --prefix=/usr/local/php5622 --enable-maintainer-zts --with-config-file-path=/usr/local/php5622/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-opcache --enable-mbstring --enable-soap --enable-zip --enable-bcmath--with-openssl --with-zlib --with-curl --with-gd --with-zlib-dir=/usr/lib--with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-mhash--with-apxs2=/usr/local/apache/bin/apxs
make
make install
添加软连接
添加 php-fpm用户
adduser php-fpm
groupadd www
php-fpm
复制默认配置文件
cp /usr/local/php5622/etc/php-fpm.conf.default /usr/local/php5622/etc/php-fpm.conf
cp /usr/local/src/php-5.6.22/php.ini-production /usr/local/php5622/etc/php.ini
增加启动脚本
http://coder.weisiliang.com/co_index.action?coid=38
增加memcache支持
http://pecl.php.net/package/memcache
wget http://pecl.php.net/get/memcache-3.0.8.tgz
tar zxvf memcache-3.0.8.tgz
cd memcache-3.0.8
phpize56
./configure --with-php-config=/usr/local/php5622/bin/php-config
make
make install
libmemcached
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached
make
make install
memcached php ext
wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
phpize56
./configure --with-php-config=/usr/local/php5622/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
make
make install
centos php5.6是yum安装的
pthread2.x支持php5
3.x支持php7
下载:
wget http://pecl.php.net/get/pthreads-2.0.10.tgz
tar zxvf pthreads-2.0.10.tgz
cd pthreads-2.0.10
安装phpize
yum install php56-php-devel
默认没加关联,需要增加快捷方式
ln -s /opt/remi/php56/root/usr/bin/phpize /usr/bin/phpize
ln -s /opt/remi/php56/root/usr/bin/php-config /usr/bin/php-config
phpize
编译
./configure --with-php-config=/usr/bin/php-config
提示:
checking checking for ZTS… configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled
我擦,我找的3方源php56是非线程安全的….擦擦擦
重新编译安装后
#编译安装php关联
ln -s /usr/local/php5622/bin/phpize /usr/bin/phpize56
./configure --with-php-config=/usr/local/php5622/bin/php-config
make
make install
php.ini中增加
extension=pthreads.so
php56 -i |grep pthreads -A 5
成功打印pthread 版本
不贴具体代码了,解析了youku,bilibili,sohu,iqiyi每家的策略都不一样,还都挺奇妙的。
有点解密的感觉,不写代码,只指明方向
首先需要chrome和firefox。chrome看请求比较方便,也方便搜索,而firebug比较适合javascript调试,我用chrome调js不习惯。
我需要下载的是mp4地址,需要把user-agent修改成android
1,解析youku,:
网站通常会通过一个jsonp来返回下载真实地址,问题是如何获得正确的参数
分析后发现youku返回的jsonp中除了真实mp4啥都有,就是下载地址
分析发现,js中一个函数jsonbuildfun,参数设置为返回的jsonp后就能生成真是地址对象了。
我是把页面中这两个js合并改写了下,可以用nodejs直接调用,
还有个坑,生成好的下载地址很有可能用不了!!
解决方法就是需要细致的完全模拟浏览器:
发现请求jsonp的时候需要设置cookie
Cookie:’ykss=; __ysuid=;’
一开始还研究半天这俩参数怎么生成, 原来不需要, 随便写,只要有就行。
妥妥的。
难度4分吧,主要是需要运行页面js
2,解析bilibili
这个最容易,分析请求资源发现
http://www.bilibili.com/m/html5?aid=xxx&page=xx
ua都不用改
难度1分,基本就是白送的
3,sohu
不得不说sohu隐藏的最深,也最鸡贼。
通过jsonp拿到下载地址后,发现除非通过原来网站访问,否则获得的下载地址失效。
分析js画了很长时间,一个一个的过滤,开始是以为生成参数不对,或者消息头有问题。
结果发现有个pv.png,我擦,这真心不是个统计程序,
jsonp中返回消息头有个setcookie
然后在pv.png请求头中,设置这个cookie,原来的下载地址就被激活了。
难度4分吧,不需要改什么js,就是这个机制心急很重。
4,iqiyi
iqiyi是最牛的,
获取jsonp的地址有个src和sc参数
生成算法是扰码加密并且写在页面中的,搜索的话根本搜不到。
而且这个算法大量使用了浏览器参数当变量生成的条件。扰码后反正我是没看明白
如果使用nodejs运行改写以后虽然格式合法,能拿到mp4地址但是不能播。
最后只能使用htmlutil,java实现。
htmlutil也很适合解youku
加载html后就能直接通过命令获得js对象。所有数据基本就是白给了。
难度给5.5分,除非能分析扰码过的好几千行代码,否则改js算法基本没戏。
只能变通下换个工具