php对接java接口
1、php curl 传参形式
public function send($url,$postData){
$ch = curl_init();
$headers = array("Content-type: application/json;charset='utf-8'",
"Accept: application/json", "Cache-Control: no-cache", "Pragma: no-cache");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$data = curl_exec($ch);
if ($data === false || $data === null) {
$error_code = curl_errno($ch);
curl_close($ch);
return $error_code;
} else {
curl_close($ch);
return json_decode($data,true);
}
}
public function send2($url){
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, $url);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
if ($data === false || $data === null) {
$error_code = curl_errno($curl);
curl_close($curl);
return $error_code;
} else {
curl_close($curl);
return json_decode($data,true);
}
}
$url = "";
send($url,json_encode([]));//以json body方式传参
$url .="?param1=1¶m2=2";
send2($url); //params 传参
2、java加密类型、对应php类型
/***********************加密*************************/ String txt="66666";
String key="123456781234567812345678"; // 必须24位
//加密
String keyStr = key;
byte key_byte[] = keyStr.getBytes();// 3DES 24 bytes key
SecretKey k = new SecretKeySpec(key_byte, "DESede");
javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("DESede");
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, k);
byte[] resultByte = cipher.doFinal(txt.getBytes("utf-8")); return new String(resultByte, "UTF-8");
/***********************解密*************************/
try {
//str 加密串 pass 密钥
SecretKey deskey = new SecretKeySpec(pass.getBytes(), 'DESede'); Cipher c1 = Cipher.getInstance('DESede');
c1.init(Cipher.ENCRYPT_MODE, deskey);
byte[] resultByte = c1.doFinal(Base64.decode(str));
return new String(resultByte, "UTF-8");
} catch (Exception e) { }
php:
class a{
public $key = '123456781234567812345678';
public $method = 'DES-EDE3';//加密方法 加密模式有:DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。
public $options = OPENSSL_RAW_DATA;//数据格式选项(可选)
public $iv = '';//加密初始化向量(可选
public function encrypts($data) {
$result = openssl_encrypt($data, $this->method, $this->key,$this->options); return base64_encode($result);
}
public function decrypt($encrypted) {
$encrypted = base64_decode($encrypted); $sign = openssl_decrypt($encrypted, $this->method, $this->key,$this->options); return $sign; }
}
php对接java接口的更多相关文章
- 对接第三方平台JAVA接口问题推送和解决
前言 本节所讲为实际项目中与第三方对接出现的问题最后还是靠老大解决了问题以此作为备忘录,本篇分为三小节,一小节解析Java加密接口数据,二小节解析XML文件需注意问题,最后一节则是请求Java Soa ...
- java接口对接——别人调用我们接口获取数据
java接口对接——别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况, 接口代码: package ...
- php 对接java短信接口带有英文逗号就无法通过
在对接短息接口时,对方是java接口,要求content两次编码 短信内容(Content)发起请求前必须进行URL转码.例如对于短信内容为“中文短信abc”,转码过程如下(java语言): Stri ...
- 大数据中HBase的Java接口封装
该文前提为已经搭建好的HBase集群环境,参见 HBase集群搭建与配置 ,本文主要是用Java编写一个Servlet接口,部署在Tomcat服务器上,用于提供http的接口供其他地方调用,接口中集成 ...
- PHP DES-ECB加密对接Java解密
最近公司有个业务,需要对接第三方接口,但是参数是需要加密的,对方也只提供了一个java的demo,在网上到处搜索,没有找到直接就能用的方法,后来还是跟公司的Android工程师对接出来的,在这里记录一 ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- java 接口的作用和好处
1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...
- java接口
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
- java接口的嵌套
java接口 1.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值 2.接口中的方法默认都是 public abstract ...
- java 接口和抽象类的区别
java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...
随机推荐
- Jmeter学习:Jmeter函数助手
转载地址:https://www.cnblogs.com/imyalost/p/6802173.html
- windows安装和重装系统后无法识别U盘
安装系统的方法: 1. 方案一,用大白菜制写入pe系统,但必须先准备Windows安装包 方案二,把ISO格式的系统安装包直接写入到u盘,写入U盘的方法请百度 2.开机看到电脑的logo后,按f2(不 ...
- 实用的JavaScript技巧
1.数组去重 let arr = [...new Set([1,2,3,2,1])]; //输出:[1, 2, 3] 2.删除数组中的虚值(undefined .null.NaN.0 .'' .fal ...
- Qt多线程编程之QThread
背景引言[ GUI主线程 +子线程] 跟C++11中很像的是,Qt中使用QThread来管理线程,一个QThread对象管理一个线程,在使用上有很多跟C++11中相似的地方,但更多的是Qt中独有的内容 ...
- webrtc 拥塞控制相关
RFC8836 对实时交互式音视频应用的拥塞控制算法需求进行了较为全面的总结 延迟 拥塞控制算法应该尽可能降低延时,尤其是算法本身引入的延时.与此同时仍然需要提供可用的带宽水平. -吞吐率:在相应场景 ...
- 解决: 无法打开明确指定的数据库“SSISDB”, 用户 'NT Service\SSISScaleOutMaster150' 登录失败.
环境: WindowsServer2019Datacenter SQL Server2019 SSMSv18 事情: SQL安装完成后, 发现系统日志中有如下报错: 解决: 无法打开明确指定的 ...
- STP协议-进阶
一 STP的选举规则1.在交换网络中选举一个根桥(Root Bridge)比较Bridge ID桥ID(优先级+MAC地址)越小越优 为了确保交换网络的稳定,建议提前规划STP组网,并将规划为根桥的交 ...
- vue项目,npm run dev的时候出现:Error: error:0308010C:digital envelope routines::unsupported
vue项目,npm run dev的时候出现:Error: error:0308010C:digital envelope routines::unsupported 这个是node的版本问题.我的n ...
- Jmeter固定吞吐量控制器Constant Throughput Timer
控制请求的TPS,可以使用JMETER的固定吞吐量控制器Constant Throughput Timer Target throughput(in samples per minute):目标吞吐量 ...
- 100多个常用 API 接口整理大全
聚合数据提供30大类,160种以上基础数据API服务,国内最大的基础数据API服务,下面就罗列一些免费的各类API接口. 手机号码归属地API接口: https://www.juhe.cn/docs/ ...