PHP获取抖音API重定向地址:解析HTTP 302 Found响应
"GET https://api.huoshan.com/hotsoon/item/video/_playback/?video_id=v030c0g10000chd21frc77u3s01omu10 HTTP/1.1\nHost: api.huoshan.com\nConnection: keep-alive\nCache-Control: max-age=0\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7\nSec-Fetch-Site: none\nSec-Fetch-Mode: navigate\nSec-Fetch-User: ?1\nSec-Fetch-Dest: document\nsec-ch-ua: "Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"\nsec-ch-ua-mobile: ?0\nsec-ch-ua-platform: "Windows"\nAccept-Encoding: gzip, deflate, br\nAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7,ga;q=0.6\n以上请求的响应内容如下,PHP中如何发出请求,然后获取重定向后的地址?\nHTTP/1.1 302 Found\nServer: Tengine\nContent-Type: application/json; charset=utf-8\nConnection: keep-alive\nDate: Mon, 24 Jul 2023 04:03:17 GMT\nX-Tt-Logid: 202307241203170DD446E611503D3B7BF2\nLocation: http://v3-a.huoshanvod.com/f44f661108260cccfb25dfd9fdc28d60/64be1038/video/tos/cn/tos-cn-v-0000c0192/25466f4f19864597838a8065f50d51f4/?a=1112&ch=0&cr=0&dr=0&cd=0%7C0%7C0%7C0&br=1467&bt=1467&cs=0&ds=4&ft=_nNahvvBQadUL8Z_8Z.wNnOYZlc-hSuW2bLX3CJNiZmka&mime_type=video_mp4&qs=13&rc=M3hyMzY6Zmk1azMzNDMzM0BpM3hyMzY6Zmk1azMzNDMzM0Auai5wcjRvLmFgLS1kYDBzYSMuai5wcjRvLmFgLS1kYDBzcw%3D%3D&l=202307241203170DD446E611503D3B7BF2&btag=200038000&dy_q=1690171397\nTt_stable: 1\nvary: Accept-Encoding\nserver-timing: inner; dur=59\nx-tt-trace-host: 013d3fd1d774ce8cbb121173e89aca3f0b8e723ff1f38f462fe98d5356d1aa2dc8f4bf617ae201d8709efa971e63ec519817291139dc4963fa71fbe12d2b9715e9ef4e3b9a2e0ac224d2c3453c0b2d6347f95364b9a5293b3c02a9b30eb1c8633f53cf108b2bfcae8d076195228326f739\nx-tt-trace-tag: id=03;cdn-cache=miss;type=dyn\nserver-timing: cdn-cache;desc=MISS,edge;dur=0,origin;dur=82\nVia: cache32.cn4750[82,0]\nTiming-Allow-Origin: *\nEagleId: 1bdd7a3416901713974186581e\nContent-Length: 59\n\n{"data":null,"extra":{"now":1690171397488},"status_code":0}\n内容:在PHP中,可以使用curl库来发出请求并获取重定向后的地址。以下是一个示例代码:\n\nphp\n<?php\n$url \= \"https:\/\/api.huoshan.com\/hotsoon\/item\/video\/_playback\/?video_id\=v030c0g10000chd21frc77u3s01omu10\";\n\n$ch \= curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_HEADER, true);\ncurl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n$response \= curl_exec($ch);\n$header_size \= curl_getinfo($ch, CURLINFO_HEADER_SIZE);\n$headers \= substr($response, 0, $header_size);\n$body \= substr($response, $header_size);\n\ncurl_close($ch);\n\n$location \= \"\";\n\npreg_match('/Location: (.*)/', $headers, $matches);\nif (isset($matches[1])) {\n $location \= trim($matches[1]);\n}\n\necho \"重定向后的地址:\" . $location;\n?>\n\n\n这段代码使用curl库发送了一个GET请求,并将响应的header和body分开处理。然后,通过解析header中的Location字段获取重定向后的地址。最后,通过echo语句输出重定向后的地址。\n\n请注意,该示例代码将重定向的跟随设置为false,以便获取重定向后的地址。如果要自动跟随重定向并获取最终的目标地址,可以将curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);改为curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);。\n
原文地址: https://www.cveoy.top/t/topic/pZte 著作权归作者所有。请勿转载和采集!