首先说一下为什么提问这个:
之前学习的时候有个功能需要先从A网站请求验证码,显示在页面后等待用户输入并产生交互再拿去A网站提交.
**存在问题:多个客户端同时请求的时候只有最后一个请求验证码的客户端正常查询到数据(PHP发起的请求,所以在每次获取验证码后之前的都会过期)**
正好最近在完善自己网站需要一个查询ICP备案的小功能,虽然可以从其他网站爬缓存,但还是希望能学习如何实现。
另外 这个问题有偿,但不会高(Q:305960459).
先谢谢来回答的各位大牛。
简单粗暴的描述方式:
1.需要用PHP、JS(要兼容主流浏览器)来查询域名是否备案、是否为黑名单
2.需要支持多个客户端同时查询(验证码不能过期)
http://www.miitbeian.gov.cn/i...
http://www.miitbeian.gov.cn/i...
以上为查询地址,请尽量以该地址完成查询
再次感谢来回答的大牛!~
迷茫2017-04-11 13:06:32
<!--?php
// 域名备案查询调用示例代码
//----------------------------------
header('Content-type:text/html;charset=utf-8');
//配置您申请的appkey
$appkey = "*********************";
//************1.备案查询************
$url = "http://api.juheapi.com/japi/beian";
$params = array(
"key" => $appkey,//应用APPKEY(应用详细页查询)
"type" => "",//0通过网站名称查询,如:segmentfault <br/>1通过域名查询,如:segementfault.com<br/>2通过网站首页查询,如www.baidu.com<br/>3通过许可证号查询查询,如:某ICP备0000011号-3<br/>5通过主办单位名称查询,如:某某某科技有限公司
"keyword" => "",//对应type的值,如:baidu.com
"v" => "",//版本号,固定1.0
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
function juhecurl($url,$params=false,$ispost=0){
$httpInfo = array();
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if( $ispost )
{
curl_setopt( $ch , CURLOPT_POST , true );
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
curl_setopt( $ch , CURLOPT_URL , $url );
}
else
{
if($params){
curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
}else{
curl_setopt( $ch , CURLOPT_URL , $url);
}
}
$response = curl_exec( $ch );
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
curl_close( $ch );
return $response;
}