```php
/**
* API请求DEMO
*
* 本demo支持GET与POST请求,同时支持签名验证与无需签名。
*/
//你申请的key密钥
$API_KEY = ’’;
//API接口地址
$API_URL = ’https://www.maitanbang.com/api/videorecilist/index’;
$get_post_data = array(
//接口参数,一行一个,
’key’ => $API_KEY,
);
//签名校验的 SK
$sk = ’’;
/*发起请求API接口:
第1个参数:API接口地址URL,跟上面的同名变量相对应,无需更改。
第2个参数:API接口参数数组,跟上面的同名变量相对应,无需更改。
第3个参数:请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
第4个参数:是否验证签名,true验证签名,否则false不验证签名,
第5个参数:如果第4个参数开启验证签名,此处必须填写 SK ,跟上面的同名变量相对应,无需更改。
*/
$resdata = api::send($API_URL, $get_post_data, ’选方法’, true, $sk); //发起请求,注意这里要选择接口支持的协议,默认GET,可选POST
//打印请求结果
print($resdata);
///////////////你的业务代码可写在这里处理API返回的数据
/**
* API请求类
*/
c-lass api
{
public static function send($API_URL, $get_post_data, $type, $ifsign, $sk)
{
$get_post_data = http_build_query($get_post_data);
if ($ifsign) {
$sign = md5($get_post_data . $sk);
$res = self::send_curl($API_URL, $type, $get_post_data, $sign);
} else {
$res = self::send_curl($API_URL, $type, $get_post_data, null);
}
return $res;
}
//封装好的CURL请求函数,支持POST|GET
public static function send_curl($API_URL, $type, $get_post_data, $sign)
{
$ch = curl_init();
if ($type == ’POST’) {
curl_setopt($ch, CURLOPT_URL, $API_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data);
} elseif ($type == ’GET’) {
curl_setopt($ch, CURLOPT_URL, $API_URL . ’?’ . $get_post_data);
}
if ($sign) {
curl_setopt($ch, CURLOPT_HTTPHEADER, [’sign:’ . $sign]);
}
curl_setopt($ch, CURLOPT_REFERER, $API_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$resdata = curl_exec($ch);
curl_close($ch);
return $resdata;
}
}
把这个代码转换为java代码
```
好像不能自动转吧?你应该根据需求亲自写java代码
这个就是用php发起一个http请求。
地址:https://www.maitanbang.com/api/videorecilist/index
方法:get|post
签名字符串sk:aaa(暂时定位aaa)
密钥API_KEY:bbb(暂时定为bbb)
body数据:key=bbb
现在要发起一个请求,要携带一个信息,这个信息如下
计算签名sign:md5(key=bbbaaa) (md5加密,body数据字符串拼接一下签名字符串,然后做一下md5加密),假设计算后的签名的值为ddd
这个sign做啥用呢?放到header里面做认证,header里面的键值对长这样:sign:{sign}
相信如果你看到这里你应该可以自己写了。下面是用postman转的请求。
curl请求如下
curl --location --request GET 'https://www.maitanbang.com/api/videorecilist/index?key=aaa' \
--header 'sign: ddd'
java请求如下
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://www.maitanbang.com/api/videorecilist/index?key=aaa")
.method("GET", body)
.addHeader("sign", "ddd")
.build();
Response response = client.newCall(request).execute();