Php 如何解决在crul中获取sedoparking.com/\Gogolebot html和在laravel 7中获取guzzle请求的问题
在Laravel7中,在我的一个作业中,我发送了一个http请求,其中95%得到了html响应 请求Php 如何解决在crul中获取sedoparking.com/\Gogolebot html和在laravel 7中获取guzzle请求的问题,php,laravel,curl,guzzle,laravel-7,Php,Laravel,Curl,Guzzle,Laravel 7,在Laravel7中,在我的一个作业中,我发送了一个http请求,其中95%得到了html响应 请求 $url = "some url"; /** * Request with Guzzle and xml */ $response = Http::retry(3, 1000)->timeout(60)->withHeaders([ 'User-Agent' => 'curl/7.65.3', 'Accept' => 'text/h
$url = "some url";
/**
* Request with Guzzle and xml
*/
$response = Http::retry(3, 1000)->timeout(60)->withHeaders([
'User-Agent' => 'curl/7.65.3',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding' => 'gzip, deflate, br',
])->withOptions([
'referer' => true,
'verify' => false
])->get($url);
if($response->successful()){
try {
self::$response = $response->body();
return true;
} catch (\Throwable $th) {
Log::error(
'status:' . $response->status() .'\n' .
'server Error:' . $response->serverError() .'\n' .
'client Error:' . $response->clientError() .'\n' .
'body:' . $response->body()
);
return false;
}
return true;
}else{
try {
Log::error($url);
Log::error(
'status:' . $response->status() .'\n' .
'server Error:' . $response->serverError() .'\n' .
'client Error:' . $response->clientError() .'\n' .
'body:' . $response->body()
);
} catch (\Throwable $th) {
Log::error("couldn't even log the error of guzzle request");
Log::error($th);
}
return false;
}
响应
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
html, body, #partner, iframe {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
body {
overflow: hidden;
}
</style>
<meta content="NOW" name="expires">
<meta content="index, follow, all" name="GOOGLEBOT">
<meta content="index, follow, all" name="robots">
<!-- Following Meta-Tag fixes scaling-issues on mobile devices -->
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0;
user-scalable=0;" name="viewport">
</head>
<body>
<div id="partner"></div>
<script type="text/javascript">
function getParam() {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == 'domain') {
return pair[1];
}
}
return window.location.host;
}
;
document.write(
'<script type="text/javascript" language="JavaScript"'
+ 'src="//sedoparking.com/frmpark/'
+ getParam() + '/'
+ 'sedopark'
+ '/park.js">'
+ '<\/script>'
);
</script>
</body>
</html>
额外信息
此作业每30分钟定期发送(同时发送20个作业)
根据日志,它表明http请求已成功返回Response。但是当我记录响应时,html就是我得到的。我应该获取供应商发送给我的内容的XML。如果失败,您会得到什么?日志文件是否显示任何信息?@NigelRen根据日志,它表明http请求已成功返回响应。但是当我记录响应时,html就是我得到的。我应该得到供应商寄给我的东西的XML。
if ($options['verify'] === false) {
unset($conf[CURLOPT_CAINFO]);
$conf[CURLOPT_SSL_VERIFYHOST] = 0;
$conf[CURLOPT_SSL_VERIFYPEER] = false;
} else {
// $conf[CURLOPT_SSL_VERIFYHOST] = 2;
// $conf[CURLOPT_SSL_VERIFYPEER] = true;
$conf[CURLOPT_SSL_VERIFYHOST] = 0;
$conf[CURLOPT_SSL_VERIFYPEER] = false;