当前位置: 首页 > 后端技术 > PHP

PHP使用HTTP请求URL通用类

时间:2023-03-29 16:48:44 PHP

connect_timeout=$connect_timeout;$this->request_timeout=$request_timeout;}publicfunctionhttpRequest($url,$data,$type='POST',$header=[],$opt=[],&$curl_info=[]){$ch=curl_init($url);$options=array(CURLOPT_HTTPHEADER=>$header,CURLOPT_RETURNTRANSFER=>1,CURLOPT_CONNECTTIMEOUT=>$this->connect_timeout,CURLOPT_TIMEOUT=>$this->request_timeout,CURLOPT_SSL_VERIFYPEER=>0,CURLOPT_SSL_VERIFYHOST=>0,CURLOPT_DNS40=>CACHE_6);switch($type){case'POST':$options[CURLOPT_POST]=1;$options[CURLOPT_POSTFIELDS]=is_arr哎呀($数据)?http_build_query($数据):$数据;休息;case'GET':$options[CURLOPT_HTTPGET]=1;empty($data)或$options[CURLOPT_URL]=$url。“?”.http_build_query($data);休息;}$options=$opt+$options;//数组联合运算curl_setopt_array($ch,$options);$response=curl_exec($ch);$curl_info=curl_getinfo($ch);如果($no=curl_errno($ch)){$error=curl_error($ch);curl_close($ch);if(in_array(intval($no),[7,28],true)){thrownew\DomainException("连接或请求{$url}超时:{$error}",$no);}thrownew\DomainException("请请求{$url}失败:".$error,$no);}curl_close($ch);返回$响应;}publicfunctionsoapRequest($url,$function_name,array$arguments,$opt=[],&$request_xml='',&$response_xml=''){try{ini_set('default_socket_timeout',$this->request_timeout);$options=array_merge(['cache_wsdl'=>WSDL_CACHE_MEMORY,'connection_timeout'=>$this->connect_timeout,'trace'=>1,],$opt);libxml_disable_entity_loader(假);$client=new\SoapClient($url,$options);$response=$client->__soapCall($function_name,$arguments);$request_xml=$client->__getLastRequest();$response_xml=$client->__getLastResponse();返回$响应;}catch(\SoapFault$e){//超时、连接不上if(in_array($e->faultcode,['HTTP','WSDL',],true)){thrownew\DomainException("连接或请求{$url}超时",$e->getCode());}thrownew\DomainException($e,$e->getCode());}}}