小白用php仿照js写的一个加密方法 就是有问题 求解答

原本的js是一段加密的方法
function checkform()
{
var dcode;
var dcode1;
var dcode2;

dcode=document.form1.pwd.value;
dcode1="";
dcode2=1275903582
dcode2=""+dcode2*137;
var tmpstr;
var dcodelen;
dcodelen=dcode.length;
for (i=1;i<=dcodelen;i++){
tmpstr = dcode.substring(i-1,i);
dcode1=dcode1 + String.fromCharCode(tmpstr.charCodeAt(0)-i-dcode2.substring(i-1,i));
}

document.form1.pwd.value=dcode1;

}

这是我仿照写的php代码 但始终有错
//加密
function encryption($dcode){

    $dcode1=''; 
    $dcode2=1275903582;
    $dcode2 = "".$dcode2 * 137; 
    $tmpstr='';  
    for ($i=1;$i<=count($dcode);$i++)
    { 
            $tmpstr = substr($dcode,$i-1,1); 
            $tmpstr = $this->charCodeAt($tmpstr, 0); 
            $num = $this->fromCharCode($tmpstr-$i-substr($dcode2,$i-1,1)); 
            $dcode1=$dcode1 + $num;
    }  
            $encryDcode=$dcode1; 
            print_r($encryDcode); 
            die(); 
            return $encryDcode; 
    } 

function fromCharCode($codes) {
if (is_scalar($codes))
$codes= func_get_args();
$str= '';
foreach ($codes as $code)
$str.= chr($code);
return $str;
}

function charCodeAt($str, $index)
{
$char = mb_substr($str, $index, 1, 'UTF-8');

if (mb_check_encoding($char, 'UTF-8'))
{
$ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');
return hexdec(bin2hex($ret)); } else { return null;
}
}

2个回答

这个和你贴出来的js加密后的一样


    function encryption($dcode, $dcode2) {
        $dcode1 = "";
        $dcode2 = "" . $dcode2 * 137;
        $tmpstr="";
        $dcodelen =strlen($dcode);
        for ($i = 0; $i < $dcodelen; $i++) {
            $tmpstr = substr($dcode,$i , 1);
            $cd=charCodeAt($tmpstr,0);

            $dcode1 = $dcode1 . fromCharCode($cd -( $i+1)- substr($dcode2,$i , 1));
        }
        return $dcode1;
    }
    function fromCharCode($codes) {
      if (is_scalar($codes)) $codes= func_get_args();
      $str= '';
      foreach ($codes as $code) $str.= chr($code);
      return $str;
    }
    function charCodeAt($str, $index){
      $char = mb_substr($str, $index, 1, 'UTF-8'); 
      if (mb_check_encoding($char, 'UTF-8'))    {
        $ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');
        return hexdec(bin2hex($ret));
      }
      return null;
   }
  echo encryption("123456", 1275903582);

就比如$dcode=199205 dcode2=9288904070 它加密出来是%2F5%2F%2C%26%28 求解答啊

showbo
支付宝加好友偷能量挖 js加密出来是另外一个字符,不包含有%这个字符。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何用h5仿照快手写三级评论啊?
如何用h5仿照快手写三级评论啊? 如何用h5仿照快手写三级评论啊? 如何用h5仿照快手写三级评论啊?
我要仿照一个网页的UI,求便捷方法。
我想仿一个网页的UI,但是如果我手动做的话,去看尺寸太麻烦了,有没更快的方法。比如直接网页截图到UI软件,然后勾勒出框架线条之类的。 求推荐软件,或者求更为便捷的方法。
小白关于仿照内核的C语言双向循环链表问题
首先代码如下:     #include <stdio.h>     #include <stdlib.h>     #define LONG 10     struct list{     struct list * next;     struct list * prev;     };      struct student{     char name[10];          int  id;          struct list * plist;     };     /*添加节点到链表*/     void __add_list(struct list * new_list,struct list * prev,struct list * next){     printf("next->prev = new_list\n");     next->prev = new_list;     printf("new_list->next = next\n");     new_list->next = next;     printf("new_list->prev = prev\n");     new_list->prev = prev;     printf("prev->next = new_list\n");     prev->next = new_list;     }     /*初始化头部*/      void init_list(struct list * headlist){     headlist->next = headlist;     headlist->prev = headlist;     }     int main(){     int i=0;     struct student * students=NULL;     struct list * headlist = NULL;     headlist = (struct list *)malloc(sizeof(struct list));     if(!headlist){     printf("malloc failed ...\n");     return 0;     }     /*初始化头部*/     init_list(headlist);     /*循环10次插入10个节点进链表*/      for(i=0;i<LONG;i++){     students = (struct student *)malloc(sizeof(struct student));     if(!students){     printf("students malloc failed ...\n");     return 0;     }     scanf("%s",students->name);      students->id = 10+i;     __add_list(students->plist,headlist,headlist->next);     }     return 0;     } 程序运行结果如下:     xiaoming     next->prev = new_list     new_list->next = next 然后程序就崩溃了 但是如果我修改了struct student结构体 原来是:     struct student{     char name[10];     int  id;     struct list * plist;     }; 修改后:     struct student{     struct list * plist;     char name[10];     int  id;     }; 程序运行结果为:     xiaoming     next->prev = new_list     new_list->next = next     new_list->prev = prev     prev->next = new_list     students malloc failed ... 谁能帮我解释一下到底是为什么。。。。。。。。。。。。。。。。。。。。。。。。
Stream流中将int类型转换为String类型,为何不能直接引入Integer的toString方法
最近学习了Stream流的一些操作,但在方法引入的操作上出现了一些问题,下面是我问题的详解,麻烦大神们解答一番! ![图片说明](https://img-ask.csdn.net/upload/201903/02/1551529290_962478.png) 在int数组转换为String数组中,我想引入Integer的toString的静态方法,但是编译报错,我自己定义一个类,仿照Integer的toString方法写的,引入没有问题。如果用Lambda调用Integer的toString的无参方法,也不报错,就是直接调用不行。初学Stream流,不太懂什么原理,求解答,谢谢!
android 新人仿照视频写的一个计算的Demo 对比几次没问题,但是执行 报错求救
**Activity03.java** ``` private EditText Ac03textone; private EditText Ac03texttwo; private TextView Ac03viewone; private Button Ac03buttone; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity03); Ac03textone = (EditText) findViewById(R.id.ETextone); Ac03texttwo = (EditText) findViewById(R.id.ETexttwo); Ac03buttone = (Button) findViewById(R.id.Bttone); Ac03viewone = (TextView) findViewById(R.id.TView); // 设置显示值 // symbol.setext("乘以") Ac03viewone.setText(R.string.chengyi); Ac03buttone.setText(R.string.jisuan); // 按钮绑定监听 Ac03buttone.setOnClickListener(new CalculteListenter()); } class CalculteListenter implements OnClickListener { @Override public void onClick(View v) { // TODO 自动生成的方法存根 // 取得两个text的值 String Ac03textstr1 = Ac03textone.getText().toString(); String Ac03textstr2 = Ac03texttwo.getText().toString(); Intent intent = new Intent(); intent.putExtra("one", Ac03textstr1); intent.putExtra("two", Ac03textstr2); intent.setClass(Activity03.this, Activity03_1.class); // 使用intent对象启动 activity03_1 Activity03.this.startActivity(intent); } } ``` **Activity03_1.java** ``` public class Activity03_1 extends Activity { private TextView jieguo; protected void onCreate(Bundle saveIntanceState){ super.onCreate(saveIntanceState); setContentView(R.layout.activity03_2); jieguo = (TextView) findViewById(R.id.AC2_t1); Intent intent=getIntent(); String ac2_str1=intent.getStringExtra("one"); String ac2_str2=intent.getStringExtra("two"); int ac2_int1=Integer.parseInt(ac2_str1); int ac2_int2=Integer.parseInt(ac2_str2); int jg=ac2_int1 * ac2_int2; jieguo.setText(jg); } ``` **activity_Activity03.xml** ``` <Button android:id="@+id/Bttone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" /> <EditText android:id="@+id/ETexttwo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@+id/Bttone" android:layout_alignLeft="@+id/Bttone" android:layout_marginBottom="30dp" android:ems="10" /> <TextView android:id="@+id/TView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@+id/ETexttwo" android:layout_alignLeft="@+id/ETexttwo"/> <EditText android:id="@+id/ETextone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@+id/TView" android:layout_alignLeft="@+id/TView" android:layout_marginBottom="27dp" /> ``` **Activity03_2.xml** ``` <TextView android:id="@+id/AC2_t1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> ``` **Strings.xml** ``` <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">activity_3</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="chengyi">乘以</string> <string name="jisuan">计算</string> <string name="about">关于</string> <string name="exit">退出</string> </resources> ``` 一点击计算按钮就报错,新人有点愚笨,求牛人给看眼
h5app仿照微信左右切换效果怎么实现啊?
效果,跟微信左右切换页面类似的 效果,跟微信左右切换页面类似的 h5app仿照微信左右切换效果怎么实现啊?
canvas实现签字版功能,没反应,懂得朋友来给看下,感谢
签字版这个功能我是先看的教材的,然后理解清楚后,自己写的,后来不行, 索性直接仿照教材来写,但是最后几乎改成一模一样的了,浏览器后台也查不出 问题,就是没反应。 问题1:现在就是没反应,毫无反应,代码就差直接复制粘贴了,懂得朋友给讲讲 不甚感谢 问题2:最后三句是调用函数,这个调用是可以直接这样用的吗,最开始我自己写 是 :onmousedown=function(){forDown()};但是会出现错误,就是后台出现 说clientX这个属性无法识别。这个点也给顺便说活吧 图片是代码截图,请过目 ![图片说明](https://img-ask.csdn.net/upload/201912/20/1576834993_956837.png)
我想开发一个类似美团网手机端的网页,主要实现一个功能实现附近的商户
仿照美团或者百度地图实现获取用户的位置信息然后实现从数据库中查出周围的商户信息。看了百度糯米的安卓客户端与微信版网页,竟然同一位置周边的商户的距离竟然不同,我也遇到了这样的问题,在做的时候用的是Html5自带的获取经纬度的方法,用的计算两点之间经纬度距离的方法可是为什么计算出来不准,求大牛指点美团的实现方法,我就想和美团做的一样就行。 注意是 PHP语言 在微信上面实现的 求技术大牛帮忙
仿照Windows记事本用QT 写了一个,但是不知道怎样调用ui 文件里的部件,请教
主窗口mainwindow 用纯代码写的,查找功能的对话框finddlg 用ui ,怎样在mainwindow里调用ui 里面的部件?
Android实现仿照Siri声波曲线
有没有大神 用Android实现仿照Siri声波曲线呢?给点思路哈 谢谢!
关于js写可视化排序中核心部分settimeout和闭包联合使用的问题
我在写js写可视化排序时 其他代码都没问题 ,冒泡核心写成下面这样程序可正常执行 ![图片说明](https://img-ask.csdn.net/upload/201703/20/1489986531_788038.png) 但是我想让它更好的可视化:循环的时候,如果遇到前一个大于后一个,两个div红色变灰色,等待1秒,这两个div交换,这两个div又变成红色,继续下一轮循环。 我仿照![图片说明](https://img-ask.csdn.net/upload/201703/20/1489985838_432765.png) 写成下图 ![图片说明](https://img-ask.csdn.net/upload/201703/20/1489985810_676268.png) 写的时候我就感觉有问题(用50 40 30 20 测试确实有问题),但是我不知道怎么改。 求大神帮我把这小块核心改一下,并解答下我的问题,越详细越好。 求大神帮我把这小块核心改一下,并解答下我的问题,越详细越好。 求大神帮我把这小块核心改一下,并解答下我的问题,越详细越好。 主要的问题有:1.闭包不知道写对没有。 2.settimeout的延时设置1000j我感觉有问题 3.断点检测的时候settimeout好像要等所有的ij循环完了才执行,而我显然想让它遇到一对不合格的就执行一次。不知道怎么改 源代码如下: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>task2-5</title> <style type="text/css" > form{ width: 500px; margin-left: auto; margin-right: auto; margin-top: 20px; } div div{ width: 10px;background-color: red;display: inline-block;margin-right:1px;text-align: center;line-height: 30px; } #show{ width: 500px;height: 300px; margin-left: auto; margin-right: auto; margin-top: 50px;} </style> </head> <body> <form > <input id="numInput" type="text" placeholder="请输入两位数的整数"> <input id="leftIn" type="button" value="左侧入"> <input id="rightIn" type="button" value="右侧入"> <input id="leftOut" type="button" value="左侧出"> <input id="rightOut" type="button" value="右侧出"> <input id="sort" type="button" value="冒泡排序"> <input id="clear" type="button" value="清空"> </form> <div id ="show"> </div> <script type="text/javascript"> //方案1:点击按钮行为增加或者删除相应的数组元素----》对数组元素遍历并改变相应的节点------》最后进行排序 //方案2:先不设置数组 直接增减相应的节点----》待节点整体确定后,再输入数组,并进行排序 //*************** // ***选择方案2*** //**************** var show = document.getElementById("show"); var txtinput =document.getElementById("numInput"); var clrear = document.getElementById("clear"); clrear.onclick = function () { show.innerHTML = null; }; var rightOut = document.getElementById("rightOut"); rightOut.onclick =function () { var divs = show.getElementsByTagName("div"); if(divs.length==0){ alert("还未插入数字"); }else{ show.removeChild(divs[divs.length-1]); } }; var leftIn = document.getElementById("leftIn"); leftIn.onclick = function () { if(verify(txtinput.value)){ var numIn = parseInt(txtinput.value); //左输入: 创造节点 ---> 插入 var addDiv = document.createElement("div"); if(show.getElementsByTagName("div").length == 0){ show.appendChild(addDiv); addDiv.style.height=numIn*2+"px"; } else{ show.insertBefore(addDiv,show.getElementsByTagName("div")[0] ); addDiv.style.height=numIn*2+"px"; } } }; var rightIn = document.getElementById("rightIn"); rightIn.onclick = function () { if (verify(txtinput.value)) { var numIn = parseInt(txtinput.value); //右输入: 创造节点 ---> 插入 var addDiv = document.createElement("div"); addDiv.style.height=numIn*2+"px"; show.appendChild(addDiv); } }; var leftOut = document.getElementById("leftOut"); leftOut.onclick = function () { var divs = show.getElementsByTagName("div"); if(divs.length==0){ alert("还未插入数字"); }else{ show.removeChild(divs[0]); } }; var sortButton = document.getElementById("sort"); sortButton.onclick = function () { var divs = show.getElementsByTagName("div"); if(divs.length>60){ alert("排序的元素个数不能超过60个,请删除多余的元素"); }else{ sort(divs); } }; //检验数字合法性 //存在一个问题 数字太大时溢出容器!!! 检验<100且不含其他字符 function verify(str) { for (var i = 0; i < str.length; i++) { if ("1234567890".indexOf(str[i]) <= -1) { alert("请输入100以下的整数"); return false; } } var numIn = parseInt(str); if (numIn >= 100) { alert("请输入两位数整数"); return false; } if (numIn < 10) { alert("请输入两位数整数"); return false; } return true; } //冒泡排序 从小到大 function sort(arr) { var c = 0; for(var i = 0;i<arr.length;i++){ for(var j=0;j<arr.length-1-i;j++){ if(parseInt(arr[j].style.height)>parseInt(arr[j+1].style.height)){ arr[j].style.backgroundColor = "#999"; arr[j+1].style.backgroundColor = "#999"; (function (j) { setTimeout(function () { c = arr[j].style.height; arr[j].style.height = arr[j+1].style.height; arr[j+1].style.height = c; arr[j].style.backgroundColor = "red"; arr[j+1].style.backgroundColor = "red"; },j*1000); }) (j) } } } } </script> </body> </html> ```
echarts使用markline报错'coordSys.getOtherAxis is not a function'。
仿照echarts地图在已经加载好的地图上写markline后报错'coordSys.getOtherAxis is not a function',提示是echarts.js的问题,请问如果改markline代码?是文件引用不对吗?谢谢大佬们
MFC写的一个视频显示控件类,无法复用显示两路视频
刚学MFC,仿照实例写了一个视频显示的控件类,SubDlgView ,这个类UI界面只有一个picture control,接口就是一个IP地址,在CAMDlg.h 里面定义两个私有成员SubDlgView videoDisplay2; SubDlgView videoDisplay; 但是显示的时候总是只能再第二个显示的控件中显示视频?不知道为什么
希望找个网页特效,仿照环聊的样式
是网页特效,基本参照环聊,可以平时收束,点击 展开一个聊天栏,用css或者js写都可以,如果可以拖动更好了
drools xstream初始化问题
项目启动时,日志报Security framework of XStream not initialized, XStream is probably vulnerable. drools中条件when都满足,但是执行时kSession.fireAllRules();方法返回0(无满足条件)。其他的不报错。只是一开始日志报xstream没有初始化。 目前仿照了几个demo写,都是这个问题。这个是在 Found kmodule: file:/E:/baiya/iot-ubilinkage-BackgroundManagementSystem/target/classes/META-INF/kmodule.xml 这个日志后面报的错。请问是什么原因呢? ![图片说明](https://img-ask.csdn.net/upload/201909/06/1567733386_535740.png) 这个是我文件的路径。内容应该都没问题,因为是仿照demo写的。 pom文件也引入xstream了。
怎么用C++编写组合对象的使用?
有以下要求: 1、设计类似PPT页的类CPPage,定义其数据成员、成员函数,要求至少包含一个矩形对象数组和一个椭圆形对象数组(最好是动态对象数组)(椭圆形类仿照矩形类设计) 2、设计成员函数Show显示本PPT页的相关信息:如矩形个数,椭圆形个数 3、设置CPPage类为矩形类的友元类;并在Show函数中直接访问矩形类的文本串。 4、增加一个静态成员对CPPage类进行计数; 5、对象信息的输入方式采用读取文本文件的方式。 注:拜托给出所有代码,救救孩子吧,万分感谢!
新手求大神帮助。仿照window7写的图片浏览器,运行一直显示空指针异常,求帮助,谢谢
package com.xpc.picture; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.FrameLayout.LayoutParams; import android.widget.GridView; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.ViewSwitcher.ViewFactory; /* *一直都是空指针异常,求大神指点一点 */ public class MainActivity extends Activity { private int[] imageId = new int[]{R.drawable.a,R.drawable.b,R.drawable.c, R.drawable.e,R.drawable.f,R.drawable.g,R.drawable.h, R.drawable.i};//定义并初始化保存图片IDde 数组 private ImageSwitcher imageSwitcher; //申明一个图像切换器对象 GridView gridview = (GridView) findViewById(R.id.gridview1); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1); imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));//设置淡入动画 imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));//淡出效果 imageSwitcher.setFactory(new ViewFactory() { @Override public View makeView() { // TODO Auto-generated method stub ImageView imageView = new ImageView(MainActivity.this);//实例化一个ImageView类的对象 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));//设置保持纵横比居中缩放图像 //是否导包错误???这是要导什么包,太多了 return imageView; } }); imageSwitcher.setImageResource(imageId[6]); BaseAdapter adapter = new BaseAdapter(){ @Override public int getCount() { // TODO Auto-generated method stub return imageId.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ImageView imageview; if(convertView==null){ imageview = new ImageView(MainActivity.this); imageview.setAdjustViewBounds(true); imageview.setMaxWidth(150);//设置长度宽度 imageview.setMaxHeight(113); imageview.setPadding(5,5, 5,5);//设置内边距 }else{ imageview=(ImageView) convertView; } imageview.setImageResource(imageId[position]);//设置要显示的图片 return imageview; } }; gridview.setAdapter(adapter); gridview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub imageSwitcher.setImageResource(imageId[position]); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <GridView android:id="@+id/gridview1" android:layout_height="match_parent" android:layout_width="640dp" android:layout_marginTop="10dp" android:horizontalSpacing="3dp" android:verticalSpacing="3dp" android:numColumns="4" /> <ImageSwitcher android:id="@+id/imageSwitcher1" android:padding="20dp" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
请问下各位大佬们,我在用ksoap2-Android调用web service服务时出现了stream closed的报错
小弟仿照网上的一个例子想用web service服务写一个查询天气的安卓应用。 但是在该服务的第三个方法时出现了stream closed的错误,百度没有找到结果, 麻烦各位大神帮我看下,以下是我的代码,在根据城市获取城市具体天气情况这个 方法时报了错 提供服务的URL是http://ws.webxml.com.cn/WebServices/WeatherWS.asmx ``` public class WebServicerUtil { // 定义Web Service的命名空间 static final String SERVICE_NS = "http://WebXml.com.cn/"; // 定义Web Service提供服务的URL static final String SERVICE_URL = "http://ws.webxml.com.cn/WebServices/WeatherWS.asmx"; // 调用远程 Web Service获取省份列表 public static List<String> getProvinceList() { /** * 调用远程Web Service的getRegionProvince方法: 获得中国省份、直辖市、地区和与之对应的ID * <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/"> <string>黑龙江,3113</string> <string>吉林,3114</string> <string>辽宁,3115</string> <string>内蒙古,3116</string> <string>河北,3117</string> <string>河南,3118</string> <string>山东,3119</string> <string>山西,31110</string> <string>江苏,31111</string> <string>安徽,31112</string> <string>陕西,31113</string> <string>宁夏,31114</string> <string>甘肃,31115</string> <string>青海,31116</string> <string>湖北,31117</string> <string>湖南,31118</string> <string>浙江,31119</string> <string>江西,31120</string> <string>福建,31121</string> <string>贵州,31122</string> <string>四川,31123</string> <string>广东,31124</string> <string>广西,31125</string> <string>云南,31126</string> <string>海南,31127</string> <string>新疆,31128</string> <string>西藏,31129</string> <string>台湾,31130</string> <string>北京,311101</string> <string>上海,311102</string> <string>天津,311103</string> <string>重庆,311104</string> <string>香港,311201</string> <string>澳门,311202</string> <string>钓鱼岛,311203</string> </ArrayOfString> */ String methodName = "getRegionProvince"; //获得中国省份、直辖市、地区和与之对应的ID // 创建HttpTransportSE传输对象,该对象用于调用Web Service操作 HttpTransportSE ht = new HttpTransportSE(SERVICE_URL); ht.debug = true; // 使用SOAP1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); // 实例化SoapObject对象,传入所要调用的Web Service的命名空间,Web Service方法名 SoapObject soapObject = new SoapObject(SERVICE_NS, methodName); //将 soapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息 envelope.bodyOut = soapObject; /** * 因为什么这个网站是通过.NET对外提供Web Service的, * 因此设置与.Net提供的Web Service保持较好的兼容性 */ envelope.dotNet = true; try { // 调用Web Service ht.call(SERVICE_NS + methodName, envelope); if (envelope.getResponse() != null) { // 获取服务器响应返回的SOAP消息 SoapObject result = (SoapObject) envelope.bodyIn; SoapObject detail = (SoapObject) result.getProperty(methodName + "Result"); // 解析服务器响应的SOAP消息。 return parseProvinceOrCity(detail); } } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } return null; } // 根据省份获取城市列表 public static List<String> getCityListByProvince(String province) { /** * 调用的方法 * 获得支持的城市/地区名称和与之对应的ID 输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组。 如:输入北京的theRegionCode:311101得到的返回结果为: <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/"> <string>北京,792</string> <string>昌平,785</string> <string>大兴,826</string> <string>房山,827</string> <string>怀柔,752</string> <string>门头沟,788</string> <string>密云,751</string> <string>平谷,756</string> <string>顺义,741</string> <string>通州,3409</string> <string>延庆,746</string> <string>海淀,742</string> <string>朝阳,3408</string> <string>丰台,795</string> <string>石景山,794</string> </ArrayOfString> */ String methodName = "getSupportCityString"; // 创建HttpTransportSE传输对象 HttpTransportSE ht = new HttpTransportSE(SERVICE_URL); ht.debug = true; // 实例化SoapObject对象 SoapObject soapObject = new SoapObject(SERVICE_NS, methodName); // 添加一个请求参数 soapObject.addProperty("theRegionCode", province); // 使用SOAP1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.bodyOut = soapObject; // 设置与.Net提供的Web Service保持较好的兼容性 envelope.dotNet = true; try { // 调用Web Service ht.call(SERVICE_NS + methodName, envelope); if (envelope.getResponse() != null) { // 获取服务器响应返回的SOAP消息 SoapObject result = (SoapObject) envelope.bodyIn; SoapObject detail = (SoapObject) result.getProperty(methodName + "Result"); // 解析服务器响应的SOAP消息。 return parseProvinceOrCity(detail); } } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } return null; } // 解析服务器响应的SOAP消息。 private static List<String> parseProvinceOrCity(SoapObject detail) { List<String> result = new ArrayList<String>(); for (int i = 0; i < detail.getPropertyCount(); i++) { // 解析出每个省份 result.add(detail.getProperty(i).toString().split(",")[0]); } return result; } // 根据城市获取城市具体天气情况 public static SoapObject getWeatherByCity(String cityName) { String methodName = "getWeather"; HttpTransportSE ht = new HttpTransportSE(SERVICE_URL); ht.debug = true; SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); SoapObject soapObject = new SoapObject(SERVICE_NS, methodName); soapObject.addProperty("theCityCode", cityName); envelope.bodyOut = soapObject; // 设置与.Net提供的Web Service保持较好的兼容性 envelope.dotNet = true; try { ht.call(SERVICE_NS + methodName, envelope); SoapObject result = (SoapObject) envelope.bodyIn; SoapObject detail = (SoapObject) result.getProperty(methodName + "Result"); return detail; } catch (Exception e) { e.printStackTrace(); } return null; } } ``` 下边是报错内容 ``` 2019-12-22 15:35:47.617 29228-29259/? W/System.err: java.io.IOException: Stream closed 2019-12-22 15:35:47.617 29228-29259/? W/System.err: at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:151) 2019-12-22 15:35:47.617 29228-29259/? W/System.err: at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) 2019-12-22 15:35:47.617 29228-29259/? W/System.err: at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) 2019-12-22 15:35:47.617 29228-29259/? W/System.err: at java.io.BufferedInputStream.read(BufferedInputStream.java:334) 2019-12-22 15:35:47.618 29228-29259/? W/System.err: at org.ksoap2.transport.HttpTransportSE.readDebug(HttpTransportSE.java:299) 2019-12-22 15:35:47.618 29228-29259/? W/System.err: at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:261) 2019-12-22 15:35:47.618 29228-29259/? W/System.err: at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118) 2019-12-22 15:35:47.618 29228-29259/? W/System.err: at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113) 2019-12-22 15:35:47.619 29228-29259/? W/System.err: at com.example.weather.WebServicerUtil.getWeatherByCity(WebServicerUtil.java:205) 2019-12-22 15:35:47.619 29228-29259/? W/System.err: at com.example.weather.MyWeather.showWeather(MyWeather.java:147) 2019-12-22 15:35:47.619 29228-29259/? W/System.err: at com.example.weather.MyWeather.access$200(MyWeather.java:21) 2019-12-22 15:35:47.619 29228-29259/? W/System.err: at com.example.weather.MyWeather$3$1.run(MyWeather.java:125) 2019-12-22 15:35:47.619 29228-29259/? W/System.err: at java.lang.Thread.run(Thread.java:761) 2019-12-22 15:35:47.619 29228-29259/? E/AndroidRuntime: FATAL EXCEPTION: Thread-4 Process: com.example.weather, PID: 29228 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object org.ksoap2.serialization.SoapObject.getProperty(int)' on a null object reference at com.example.weather.MyWeather.showWeather(MyWeather.java:150) at com.example.weather.MyWeather.access$200(MyWeather.java:21) at com.example.weather.MyWeather$3$1.run(MyWeather.java:125) at java.lang.Thread.run(Thread.java:761) 2019-12-22 15:35:47.684 29228-29251/? D/EGL_emulation: eglMakeCurrent: 0xa26a6a60: ver 3 0 (tinfo 0xa461a8d0) ```
仿照小米应用商店应用评价界面的效果
先在项目需要仿照小米应用商店评价界面,你可以滑动来隐藏掉上面的部分,但是两个tab还停留在界面的顶部,下方是ViewPager,ViewPager里面我有三个可以下拉刷新的listView,比较蛋疼。。。。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问