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

php语言检索各种图书信息

时间:2023-03-29 17:07:25 PHP

书籍是人类终生的朋友。有时我们需要搜索一本书或其他东西。一般我们会去图书馆,但是如果我们自己开发一个应用,比如网站,app等等,显然是做不到这一点的。一般来说,很多网站是不允许??数据流出的。在这种情况下,最好调用专门的数据提供接口。那么笔者以PHP语言为例实现图书信息检索的功能,直接上传代码:$value){$params[$key]=mb_convert_encoding($value,"UTF-8","GBK");}$paramstring=http_build_query($params);$content=http_curl($url,$paramstring,true);return$content;}echomain();?>当然java语言也可以实现,例子如下packagecom.xiaocongjisuan.module.example;importjava.io.BufferedReader;importjava.io.DataOutputStream;importjava.io.IOException;导入java.io.InputStream;导入java.io.InputStreamReader;导入java.io.UnsupportedEncodingException;导入java.net.HttpURLConnection;导入java.net.URL;导入java.net.URLEncoder;导入java.util.HashMap;importjava.util.Map;publicclassApplication{publicstaticfinalStringDEF_CHATSET="UTF-8";publicstaticfinalintDEF_CONN_TIMEOUT=30000;publicstaticfinalintDEF_READ_TIMEOUT=30000;publicstaticStringuserAgent="Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.36(KHTML,likeGecko)Chrome/29.0.1547.66Safari/537.36";//配置你申请的appKey和openIdpublicstaticfinalStringAPP_KEY="yours";publicstaticfinalStringOPEN_ID="yours";//将map类型转为请求参数类型publicstaticStringurlEncode(Mapparams){if(params==null){return"";};StringBuildersb=newStringBuilder();for(Map.Entryi:params.entrySet()){try{sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");}赶上(UnsupportedEncodingExceptione){e.printStackTrace();}}Stringr=sb.toString();if(r.endsWith("&")){r=r.substring(0,r.length()-1);}returnr;}/****@paramrequestUrl请求URL*@paramparams请求参数*@parammethod请求方法*@return请求结果*@throwsException*/publicstaticStringrequestContent(StringrequestUrl,Mapparams,Stringmethod)抛出异常{HttpURLConnectionconn=null;BufferedReader阅读器=null;字符串rs=空;try{//组态请求链接StringBuffersb=newStringBuffer();if(method!=null&&method.equalsIgnoreCase("get")){requestUrl=requestUrl+"?"+urlEncode(params);}//默认获取URLurl=newURL(requestUrl);conn=(HttpURLConnection)url.openConnection();conn.setRequestMethod("GET");if(method!=null&&method.equalsIgnoreCase("post")){conn.setRequestMethod("POST");conn.setDoOutput(true);conn.setDoInput(true);}//参数配置conn.setRequestProperty("User-agent",userAgent);conn.setUseCaches(false);康恩.setConnectTimeout(DEF_CONN_TIMEOUT);conn.setReadTimeout(DEF_READ_TIMEOUT);conn.setInstanceFollowRedirects(false);conn.connect();if(params!=null&&method.equalsIgnoreCase("post")){try{DataOutputStreamout=newDataOutputStream(conn.getOutputStream());out.writeBytes(urlEncode(参数));}catch(Exceptione){e.printStackTrace();}}//读取数据InputStreamis=conn.getInputStream();reader=newBufferedReader(newInputStreamReader(is,DEF_CHATSET));字符串strRead=null;while((strRead=reader.readLine())!=null){sb.append(strRead);}rs=sb.toString();}catch(IOExceptione){e.printStackTrace();}最后{if(reader!=null){reader.close();}if(conn!=null){conn.disconnect();}}返回rs;}publicstaticvoidmain(String[]args)throwsException{Stringdomain="http://api.xiaocongjisuan.com/";Stringservlet="data/bookresource/get";字符串方法=“获取”;StringrequestUrl=域+servlet;Mapparams=newHashMap();params.put("appKey",APP_KEY);params.put("openId",OPEN_ID);//变量部分params.put("q","历史");params.put("字段","名称");params.put("当前页面",1);params.put("pageSize",10);params.put("订单","向上");params.put("sortField","pageNum");Stringresult=requestContent(requestUrl,params,method);System.out.println(结果);}}其他语言的实际方式可以参考看这篇帖子

最新推荐
猜你喜欢