立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 68|回复: 7

大佬们帮忙看看这个接口怎么弄?

[复制链接]

大佬们帮忙看看这个接口怎么弄?

[复制链接]

15

主题

144

回帖

823

积分

高级会员

积分
823
菜鸡鲲

15

主题

144

回帖

823

积分

高级会员

积分
823
2024-4-6 17:13:18 | 显示全部楼层 |阅读模式
post:
https://api.qst8.cn/api/front/upload/img

请求标头:authority:
api.qst8.cn
:method:
POST
:path:
/api/front/upload/img
:scheme:
https
Accept:
*/*
Accept-Encoding:
gzip, deflate, br, zstd
Accept-Language:
zh-CN,zh;q=0.9
Branchid:
1002
Cache-Control:
no-cache
Channel:
Content-Length:
2066189
Content-Type:
multipart/form-data; boundary=----WebKitFormBoundarywIB4fkxKvaM69fwp
Method:
POST
Origin:
https://qst8.cn
Pragma:
no-cache
Referer:
https://qst8.cn/
Sec-Ch-Ua:
"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"
Sec-Ch-Ua-Mobile:
?0
Sec-Ch-Ua-Platform:
"Windows"
Sec-Fetch-Dest:
empty
Sec-Fetch-Mode:
cors
Sec-Fetch-Site:
same-site
Sign:
bc167104aa367377609e9b64da7d396b
Source:
h5
Tenantid:
3
Timestamp:
1712394675371
Token:
531cd244-5f7e-4fd7-5532-1f539052d71a
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

载荷file: (二进制)
file:

返回的数据格式{
    "code": 200,
    "message": "操作成功",
    "data": "https://img.qst8.cn/custom/pic/xxx.png"
}

请求标头里的sign值和token值是怎么生成的,怎么对这个接口进行正确的post?
希望大佬们能教一下,谢谢了。

回复

使用道具 举报

78

主题

919

回帖

2510

积分

金牌会员

积分
2510
个人支付宝接口

78

主题

919

回帖

2510

积分

金牌会员

积分
2510
2024-4-6 17:28:17 | 显示全部楼层
本帖最后由 个人支付宝接口 于 2024-4-6 17:29 编辑

看起来就是个multipart/form-data类型的上传表单,sign和token哪里来的要去分析前台代码
回复

使用道具 举报

15

主题

144

回帖

823

积分

高级会员

积分
823
菜鸡鲲 楼主

15

主题

144

回帖

823

积分

高级会员

积分
823
2024-4-6 17:30:22 | 显示全部楼层

个人支付宝接口 发表于 2024-4-6 17:28

看起来就是个multipart/form-data类型的上传表单,sign和token哪里来的要去分析前台代码 ...

老哥能麻烦给个例子吗,我这一直测试上传失败,不知道为什么?

回复

使用道具 举报

97

主题

921

回帖

3427

积分

论坛元老

积分
3427
youhei

97

主题

921

回帖

3427

积分

论坛元老

积分
3427
2024-4-6 17:28:00 | 显示全部楼层
这个上传入口在哪里
回复

使用道具 举报

5

主题

2401

回帖

5343

积分

论坛元老

积分
5343
icon

5

主题

2401

回帖

5343

积分

论坛元老

积分
5343
2024-4-6 17:40:33 | 显示全部楼层
我,秦始皇,打钱
回复

使用道具 举报

0

主题

2

回帖

8

积分

新手上路

积分
8
SirW

0

主题

2

回帖

8

积分

新手上路

积分
8
2024-4-6 17:41:49 | 显示全部楼层
[ 本帖最后由 SirW 于 2024-4-6 18:50 编辑 ]\n\n随便写了下,拿去用吧。做图床用的?

  1. $type ,
  2.                 "timestamp" => $timestamp,
  3.                 "source" => "h5",
  4.                 "key" => "1F2F58F2220096D7E209224F826B6D67"
  5.         );
  6.         $j = json_encode($json);
  7.         $sign = md5(strtoupper($j));
  8.         $h = array(
  9.                 "accept: application/json, text/javascript, */*; q=0.01",
  10.                 "Channel:",
  11.                 "Method:GET",
  12.                 "Referer:",
  13.                 "Branchid:1002",
  14.                 "Sign:".$sign,
  15.                 "Source:h5",
  16.                 "Tenantid:3",
  17.                 "Timestamp:".$timestamp,
  18.                 "User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
  19.         );

  20.         if($token != ""){
  21.                 $h[] = "Token:".$token;
  22.         }
  23.         return $h;
  24. }

  25. function upload($filePath){
  26.         $url = "/api/front/user/h5Login";//带上域名,回帖发不了
  27.         $type = "GET";
  28.         $timestamp = (string)(time()*1000+rand(100,999));
  29.         $randToken = uuid();
  30.         $headers = getHeaders($type, $timestamp, $randToken);

  31.         //register Token
  32.         $content = POST($url, "", $headers);
  33.         $d = json_decode($content, true);
  34.         $token = $d["data"]["token"];
  35.         
  36.         //upload
  37.         $type2 = "POST";
  38.         $url2 = "/api/front/upload/img";//带上域名,回帖发不了
  39.         $timestamp = (string)(time()*1000+rand(100,999));
  40.         $headers2 = getHeaders($type2, $timestamp, $token);
  41.         $headers2[] = "Content-Type:multipart/form-data";
  42.         $postData = array(
  43.                 'file' => new CURLFile($filePath),
  44.         );
  45.         $c = POST($url2, $postData, $headers2);
  46.         $d = json_decode($c,true);
  47.         return $d["data"];
  48. }

  49. function POST($url,$post,$headers){
  50.         $c = curl_init();
  51.         curl_setopt($c, CURLOPT_URL, $url);
  52.         curl_setopt($c, CURLOPT_HEADER, 0);
  53.         curl_setopt($c, CURLOPT_NOBODY, 0);
  54.         if($post) {
  55.             curl_setopt($c, CURLOPT_POST, 2);
  56.             curl_setopt($c, CURLOPT_POSTFIELDS, $post);
  57.         }
  58.         if(stripos($url, 'https://') > -1){
  59.             curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);
  60.             curl_setopt($c, CURLOPT_SSL_VERIFYHOST, FALSE);
  61.         }
  62.         curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  63.         curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 12);
  64.         curl_setopt($c, CURLOPT_TIMEOUT,12);
  65.         curl_setopt($c, CURLOPT_ENCODING ,'gzip, deflate');
  66.         if(!$ip) {
  67.             $ip_long = array(
  68.                     array('607649792', '608174079'), //36.56.0.0-36.63.255.255
  69.                     array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
  70.                     array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
  71.                     array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
  72.                     array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
  73.                     array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
  74.                     array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
  75.                     array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
  76.                     array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
  77.                     array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
  78.             );   
  79.             $rand_key = mt_rand(0, 9);
  80.             $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
  81.         }      
  82.             
  83.         $headers[] = 'X-Forwarded-For:'.$ip;
  84.         $headers[] = 'x-real-ip:'.$ip;
  85.         $headers[] = 'CLIENT_IP:'.$ip;
  86.         curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
  87.         // curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
  88.         $content = curl_exec($c);

  89.         curl_close($c);
  90.         return $content;
  91.     }

  92. function uuid() {  
  93.     $data = openssl_random_pseudo_bytes(16);  
  94.     assert(strlen($data) == 16);  
  95.   
  96.     // Set version to 0100  
  97.     $data[6] = chr(ord($data[6]) & 0x0f | 0x40);  
  98.     // Set bits 6-7 to 10  
  99.     $data[8] = chr(ord($data[8]) & 0x3f | 0x80);  
  100.   
  101.     return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));  
  102. }
复制代码
回复

使用道具 举报

15

主题

144

回帖

823

积分

高级会员

积分
823
菜鸡鲲 楼主

15

主题

144

回帖

823

积分

高级会员

积分
823
2024-4-6 18:47:48 | 显示全部楼层

SirW 发表于 2024-4-6 18:47

[ 本帖最后由 SirW 于 2024-4-6 18:50 编辑 ]\n\n随便写了下,拿去用吧。做图床用的?

...

大佬,这段代码不太理解为什么这么写,不会用啊。

回复

使用道具 举报

35

主题

191

回帖

791

积分

高级会员

积分
791
zqqzqq

35

主题

191

回帖

791

积分

高级会员

积分
791
2024-4-6 19:27:56 | 显示全部楼层
看我帖子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|HS2V主机综合交流论坛

GMT+8, 2024-12-26 09:50 , Processed in 0.021613 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表