PHP代码改为java代码



```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();