狐妖小红娘
爱神巧克力
女娲成长日记
镇魂街
少年锦衣卫
一人之下
继续阅读国产优秀动画推荐!
1.安装vsftp
#yum install vsftpd -y
2.添加ftp帐号和目录
#useradd -d /var/www/html/isilent -s /sbin/nologin isilent
3.修改用户密码
#passwd isilent
4.配置vsftp
#vi /etc/vsftpd/vsftpd.conf 将配置文件中”anonymous_enable=YES“改为“anonymous_enable=NO” 取消如下配置前的注释符号: chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
5.限制用户目录
#touch /etc/vsftpd/chroot_list 把用户名添加到这个文件中,注意,每个用户占一行
6.启动vsftp服务
#service vsftpd start
方向一旦跑偏,造成的影响是非常大的。
1、请求地址问题
问题描述:移动接口的请求地址是IP地址,需要在header中设置host参数。测试过程中一直遇到400错误而不知道原因,于是决定在PC上面使用fidder进行抓包查看。抓到的包一直有问题,host地址始终是ip地址而不是设置好的域名。
问题原因:fidder抓手机包采用的是代理方式。抓包后对header中的host信息进行了改动。更深层次的原因是fidder采用了PC端的DNS解析。
问题解决:使用fidder抓包时,PC上面修改hosts文件,手机端请求地址改为域名方式。
2、Base64编码问题
问题描述:使用fidder抓包后发现,header信息中有一个参数不正确。移动方提示参数未设置。
问题原因:程序中使用了android.util.Base64进行Base64加密。该包进行加密的时候默认进行了自动换行操作。
问题解决:使用android.util.Base64包进行加密的时候,第二个参数需要改为Base64.NO_WRAP。
一、双向消息加密
RSA,非对称加密算法。
DES,AES,对称加密算法。
用于服务端和客户端通讯。
客户端向服务端发送数据,采用RSA算法,使用公钥进行加密。服务端使用私钥进行解密。
服务端向客户端发送数据,采用DES或AES算法进行加密。客户端进行解密。
二、用户登录验证
谷歌验证 (Google Authenticator)
用于用户登录二次验证。
一、通过php中的system命令来操作tinyproxy
system("service tinyproxy restart");
二、修改apache用户为tinyproxy
vim /etc/httpd/conf/httpd.conf
三、修改subsys文件夹的权限
chmod 777 /var/lock/subsys
四、重启apache服务器
service httpd restart
备注:
1.关于tinyproxy的使用,可以参考:CENTOS 下安装配置 TinyProxy
2.关于centos下php运行环境的搭建,可以参考:在CentOS上搭建PHP服务器环境
TinyProxy是个非常便利,很容易架设的HTTP、HTTPS代理。
1.安装TinyProxy
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm yum update yum install tinyproxy
2.配置TinyProxy
vim /etc/tinyproxy/tinyproxy.conf
Port 8888 //预设是8888 Port,你可以更改成你自己的Port
Allow 127.0.0.1 //将127.0.0.1改成你自己的IP
//例如你的IP 是1.2.3.4,你改成Allow 1.2.3.4,那只有你才可以连上这个Proxy
//若你想任何IP都可以连到Proxy在Allow前面打#注释
3.启动TinyProxy
service tinyproxy start
<?php $url = 'http://www.baidu.com/'; // GET请求 $html = file_get_contents($url); // POST请求 $post_data = array( 'username' => 'test', 'password' =>' test' ); $html = send_post('http://www.baidu.com', $post_data); echo $html; 继续阅读PHP发送GET、POST请求
public class VideoUtil { /** * 根据电影的m3u8_url解析出ts_url即xxx.ts形式url为元素的集合 * * @param m3u8_url m3u8文件地址 * @return 返回ts_url集合 */ public static ArrayList m3u8Parser(String m3u8_url) { try { ArrayList list_ts = new ArrayList(); URL url = new URL(m3u8_url); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); InputStream in = urlConn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while ((line = reader.readLine()) != null) { if (line.startsWith("#")) { //这里是Metadata信息 } else if (line.length() > 0) { //这里是一个指向的视频流路径 ,可能是绝对地址,也可能是相对地址 if (line.startsWith("http")) { //如果以http开头,一定是绝对地址了 list_ts.add(line); } else { //不以http开头,是相对地址,需要进行拼接。 String m3u8_pre = m3u8_url.substring(0, m3u8_url.lastIndexOf("/") + 1); list_ts.add(m3u8_pre + line); } } } in.close(); return list_ts; } catch (IOException e) { e.printStackTrace(); } return null; } }
1、设置自定义背景,设置on、off文案都为空
<ToggleButton android:id="@+id/lockBtn" android:background="@drawable/lock_me" android:textOn="" android:textOff=""/>
2、自定义背景文件
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/lock_me_on" /> <!-- pressed --> <item android:drawable="@drawable/lock_me_off" /> <!-- default/unchecked --> </selector>
3、按钮的监听
mLockBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mLockBtn.isChecked()) { //锁定 mLockFlag = true; mSeekBar.setEnabled(false); mTopView.setVisibility(View.GONE); mBottomView.setVisibility(View.GONE); } else { //取消锁定 mLockFlag = false; mSeekBar.setEnabled(true); mTopView.setVisibility(View.VISIBLE); mBottomView.setVisibility(View.VISIBLE); } } });