1.Get请求

文章目录

  • 1.Get请求
  • 2.Post请求
  • 案例分析(爬取歌曲信息)
/***     输入对应的参数,获取对应的json数据--get请求* @param url 需要解析的地址* @param params 参数地址* @return 返回一个对应的json数据* List:集合。类似于数组的一个东西。NameValuePair:类型。*/
public static String httpGetCallbackData(String url, List<NameValuePair> params) {//===========模拟浏览器的环境开始=====================//1.获取连接客户端工具BasicHttpClientConnectionManager connManager = new BasicHttpClientConnectionManager();CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(connManager).build();//2.网址返回的json数据。创建一个空的引用。String entityStr = null;//3.响应工具。request:请求  response:响应CloseableHttpResponse response = null;try {//处理异常的代码块//4.由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数//?key=周杰伦&pn=1&rn=30。URIBuilder:地址建设者。URIBuilder uriBuilder = new URIBuilder(url);//5.添加参数的形式。将这三个参数拼接到地址栏的后面。//Set:设置、创建 Parameter:参数,加s,多个参数uriBuilder.setParameters(params);//6.创建GET请求对象//uriBuilder.build()操作是将一串url地址交给htppGet去操作。HttpGet httpGet = new HttpGet(uriBuilder.build());//7.设置请求参数。设置一些常用参数:这个参数可以不写,有默认值的。//Socket:客户端   Timeout:超时//Connect:连接//ConnectionRequest:连接请求超时RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(50000).setConnectionRequestTimeout(50000).build();//8.加载请求参数。将这些常用参数httpGet.setConfig(requestConfig);//9.添加请求头信息httpGet.setHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36");//===========模拟浏览器的环境结束=====================//10.执行请求。按回车。response = httpclient.execute(httpGet);//11.获得响应的实体对象HttpEntity entity = response.getEntity();//12.使用Apache提供的工具类进行转换成字符串entityStr = EntityUtils.toString(entity, "UTF-8");// 打印响应内容//System.out.println(entityStr);} catch (ClientProtocolException e) {System.err.println("Http协议出现问题");e.printStackTrace();} catch (ParseException e) {System.err.println("解析错误");e.printStackTrace();} catch (URISyntaxException e) {System.err.println("URI解析异常");e.printStackTrace();} catch (IOException e) {System.err.println("IO异常");e.printStackTrace();} finally {// 释放连接if (null != response) {try {response.close();httpclient.close();} catch (IOException e) {System.err.println("释放连接出错:"+e.getMessage());}}}return entityStr;
}

2.Post请求

/***     输入对应的参数,获取对应的json数据--post请求* @param url 需要解析的地址* @param params 参数地址* @return 返回一个对应的json数据*/
public static String httpPostCallbackData(String url, List<NameValuePair> params) {//获取连接客户端工具BasicHttpClientConnectionManager connManager = new BasicHttpClientConnectionManager();CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(connManager).build();//网址返回的json数据String entityStr = null;//相应工具CloseableHttpResponse response = null;try {// 创建POST请求对象HttpPost httpPost = new HttpPost(url);//设置请求参数RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(50000).setConnectionRequestTimeout(50000).build();//加载请求参数httpPost.setConfig(requestConfig);//添加请求头信息httpPost.setHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36");// 添加请求参数,使用URL实体转换工具HttpEntity httpEntity = new UrlEncodedFormEntity(params,"UTF-8");httpPost.setEntity(httpEntity);// 执行请求response = httpclient.execute(httpPost);// 获得响应的实体对象HttpEntity entity = response.getEntity();// 使用Apache提供的工具类进行转换成字符串entityStr = EntityUtils.toString(entity, "UTF-8");// 打印响应内容//System.out.println(entityStr);} catch (ClientProtocolException e) {System.err.println("Http协议出现问题:"+e.getMessage());} catch (ParseException e) {System.err.println("解析错误:"+e.getMessage());} catch (IOException e) {System.err.println("IO异常:"+e.getMessage());} finally {// 释放连接if (null != response) {try {response.close();httpclient.close();} catch (IOException e) {System.err.println("释放连接出错"+e.getMessage());}}}return entityStr;
}

案例分析(爬取歌曲信息)

  • (1).java中的下载歌曲函数代码块MusicDownload
public class MusicDownload {/***     输入对应的参数,获取对应的json数据--get请求* @param url 需要解析的地址* @param params 参数地址* @return 返回一个对应的json数据* List:集合。类似于数组的一个东西。NameValuePair:类型。*/public static String httpGetCallbackData(String url, List<NameValuePair> params) {//===========模拟浏览器的环境开始=====================//1.获取连接客户端工具BasicHttpClientConnectionManager connManager = new BasicHttpClientConnectionManager();CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(connManager).build();//2.网址返回的json数据。创建一个空的引用。String entityStr = null;//3.响应工具。request:请求  response:响应CloseableHttpResponse response = null;try {//处理异常的代码块//4.由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数//?key=周杰伦&pn=1&rn=30。URIBuilder:地址建设者。URIBuilder uriBuilder = new URIBuilder(url);//5.添加参数的形式。将这三个参数拼接到地址栏的后面。//Set:设置、创建 Parameter:参数,加s,多个参数uriBuilder.setParameters(params);//6.创建GET请求对象//uriBuilder.build()操作是将一串url地址交给htppGet去操作。HttpGet httpGet = new HttpGet(uriBuilder.build());//7.设置请求参数。设置一些常用参数:这个参数可以不写,有默认值的。//Socket:客户端   Timeout:超时//Connect:连接//ConnectionRequest:连接请求超时RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(50000).setConnectionRequestTimeout(50000).build();//8.加载请求参数。将这些常用参数httpGet.setConfig(requestConfig);//9.添加请求头信息httpGet.setHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36");//===========模拟浏览器的环境结束=====================//10.执行请求。按回车。response = httpclient.execute(httpGet);//11.获得响应的实体对象HttpEntity entity = response.getEntity();//12.使用Apache提供的工具类进行转换成字符串entityStr = EntityUtils.toString(entity, "UTF-8");// 打印响应内容//System.out.println(entityStr);} catch (ClientProtocolException e) {System.err.println("Http协议出现问题");e.printStackTrace();} catch (ParseException e) {System.err.println("解析错误");e.printStackTrace();} catch (URISyntaxException e) {System.err.println("URI解析异常");e.printStackTrace();} catch (IOException e) {System.err.println("IO异常");e.printStackTrace();} finally {// 释放连接if (null != response) {try {response.close();httpclient.close();} catch (IOException e) {System.err.println("释放连接出错:"+e.getMessage());}}}return entityStr;}/***     输入对应的参数,获取对应的json数据--post请求* @param url 需要解析的地址* @param params 参数地址* @return 返回一个对应的json数据*/public static String httpPostCallbackData(String url, List<NameValuePair> params) {//获取连接客户端工具BasicHttpClientConnectionManager connManager = new BasicHttpClientConnectionManager();CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(connManager).build();//网址返回的json数据String entityStr = null;//相应工具CloseableHttpResponse response = null;try {// 创建POST请求对象HttpPost httpPost = new HttpPost(url);//设置请求参数RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(50000).setConnectionRequestTimeout(50000).build();//加载请求参数httpPost.setConfig(requestConfig);//添加请求头信息httpPost.setHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36");// 添加请求参数,使用URL实体转换工具HttpEntity httpEntity = new UrlEncodedFormEntity(params,"UTF-8");httpPost.setEntity(httpEntity);// 执行请求response = httpclient.execute(httpPost);// 获得响应的实体对象HttpEntity entity = response.getEntity();// 使用Apache提供的工具类进行转换成字符串entityStr = EntityUtils.toString(entity, "UTF-8");// 打印响应内容//System.out.println(entityStr);} catch (ClientProtocolException e) {System.err.println("Http协议出现问题:"+e.getMessage());} catch (ParseException e) {System.err.println("解析错误:"+e.getMessage());} catch (IOException e) {System.err.println("IO异常:"+e.getMessage());} finally {// 释放连接if (null != response) {try {response.close();httpclient.close();} catch (IOException e) {System.err.println("释放连接出错"+e.getMessage());}}}return entityStr;}/** 进行获取歌单信息*/public static String getMusic(String key,String pn,String rn) {//1.1获取所有的歌曲名称和rid//?key=周杰伦&pn=1&rn=10//1.2创建一个List<NameValuePair>集合List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("key", key));params.add(new BasicNameValuePair("pn",pn));params.add(new BasicNameValuePair("rn", rn));String music_information = MusicDownload.httpGetCallbackData("http://www.kuwo.cn/api/www/search/searchMusicBykeyWord", params);
//    System.out.println(music_information);JSONObject parseObject = JSONObject.parseObject(music_information);String data = parseObject.getString("data");JSONObject music_data = JSONObject.parseObject(data);String list = music_data.getString("list");//1.3通过JSONArray获取到list信息JSONArray music_list = JSONObject.parseArray(list);
//    System.out.println(music_list.toString());return music_list.toString();}/** 获取每一首歌曲的URL(里面还包含其他信息)* http://www.kuwo.cn/url?format=mp3&rid=75902101&response=url&type=convert_url3&br=128kmp3&from=web*/public static String getMusicUrl(String rid) {//2.1获取歌曲的播放地址List<NameValuePair> params2 = new ArrayList<NameValuePair>();params2.add(new BasicNameValuePair("format", "mp3"));params2.add(new BasicNameValuePair("rid", rid));params2.add(new BasicNameValuePair("response", "url"));params2.add(new BasicNameValuePair("type", "convert_url3"));params2.add(new BasicNameValuePair("br", "128kmp3"));params2.add(new BasicNameValuePair("from", "web"));//2.2添加后拼接成一个完整的url地址String musicStr = MusicDownload.httpGetCallbackData("http://www.kuwo.cn/url?format=mp3", params2);
//    System.out.println(musicStr);JSONObject music = JSONObject.parseObject(musicStr);String musicUrl = music.getString("url");
//    System.out.println(musicUrl);return musicUrl;}/** 下载歌曲到磁盘中*/public static void downLoadMusic(String musicUrl ,String musicName) {try {//3.1 将这个地址交给URL对象处理URL url = new URL(musicUrl);//3.2获取一个打开url的连接对象URLConnection openConnection = url.openConnection();//3.3获取文件的输入流InputStream is = openConnection.getInputStream();//3.4读取文件信息int len = 0;byte[] b = new byte[1024*8];//3.5创建文件输出流(歌曲所下载的位置)OutputStream os = new FileOutputStream("D:\\Java课程设计\\kwMusic\\"+musicName);//3.6读取文件while((len = is.read(b)) != -1 ) {os.write(b, 0, len);}System.out.println("歌曲下载完成:下载路径是  -->"+"D:\\\\Java课程设计\\\\kwMusic\\"+musicName);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {//获取当前时间毫秒值System.out.println("开始进行下载歌曲...");long currentTimeMillis_1 = System.currentTimeMillis();//1.获取到所有的歌曲信息String music = MusicDownload.getMusic("许嵩","1","12");JSONArray music_array = JSONObject.parseArray(music);for (int i = 0; i < music_array.size(); i++) {JSONObject list = music_array.getJSONObject(i);String rid = list.getString("rid");String artist = list.getString("artist");String name = list.getString("name");String album = list.getString("album");//2.获取到所需要下载的歌曲url地址/*"url": "https://win-web-nf01-sycdn.kuwo.cn/e46e8e* 6f33eafd16090bee86cd3c38d6/5d6df316/resource/n3/72/31/1295078204.mp3"}*/String url = MusicDownload.getMusicUrl(rid);//3.进行下载歌曲//MusicDownload.downLoadMusic(url, artist+"-"+name+".mp3");}//4.下载完成所需要的时间long currentTimeMillis_2 = System.currentTimeMillis();long time = currentTimeMillis_2 - currentTimeMillis_1;System.out.println("歌曲下载完成:总共所需时间为"+time+"  Millis");}
}
  • (2).JSP代码块中的主播放器页面index.jsp
<%@ page import="com.hugong.downloadDemo01.MusicDownload" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.alibaba.fastjson.JSONArray" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>湖工播放器</title><link rel='stylesheet' href='js/jquery-3.2.1.min.js'><!-- Bootstrap --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) --><script src="js/jquery-3.2.1.min.js"></script><!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 --><script src="js/bootstrap.min.js"></script><style>body{/* 进行设置背景图片 *//*background: url("images/bg_2.png") no-repeat center;*/}div{margin: auto;}.all{width: 800px;height: 100%;border: 2px red ;}.div_head{width: 800px;background: #DBB586;color: #DBB586;}.list{float: right;}</style></head><body><!-- 盒子模型 --><div class="all"><!-- 导航栏 --><div class="div_head"><nav class="navbar navbar-default"><div class="container-fluid"><!-- 首页 --><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="index.jsp">首页</a></div><!-- 搜索框 --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><form class="navbar-form navbar-left"><div class="form-group"><input type="text" class="form-control" placeholder="请输入任意歌手名、歌名" name="key"></div><button type="submit" class="btn btn-default">搜索</button></form><ul class="nav navbar-nav navbar-right"><%--<li><a href="index_example2.jsp?key=<%=key %>&pn=<%=(pn-1)%>&rn=4">上一页</a>&nbsp;&nbsp;&nbsp</li>--%><%--<li><a href="index_example2.jsp?key=<%=key %>&pn=<%=(pn+1)%>&rn=4">下一页</a>&nbsp;&nbsp;&nbsp</li>--%><li><a href="index.jsp">返回</a></li></ul></div></div></nav></div><!-- 所有歌曲信息 --><div><%--<table class="table table-hover" >--%><table class="table table-hover" ><!-- 列表头 --><tr><td>序列号</td><td>歌曲封面</td><td>歌曲名</td><td>歌手</td><td>专辑</td><td>在线播放</td></tr><!-- 每一首首歌曲 --><%//这个括号百分号里面是写Java代码的String key = request.getParameter("key");//parameter://获取pnString pnStr = request.getParameter("pn");int pn = 1;if(pnStr != null && !"".equals(pnStr)){//将字符串形式的数字转化为数字类型pn = Integer.parseInt(pnStr);}//如果key为空,直接查询周杰伦的信息if(key == null || "".equals(key)){key = "周杰伦";}String jsonStr = MusicDownload.getMusic(key, pnStr, "4");JSONArray jsonArray = JSONObject.parseArray(jsonStr);//创建一个json的数组JSONArray array = new JSONArray();for (int i = 0; i < jsonArray.size(); i++) {//获取每个歌曲的信息JSONObject jsonObject = jsonArray.getJSONObject(i);//得到参数String rid = jsonObject.getString("rid");//歌曲idString name = jsonObject.getString("name");//歌曲名String artist = jsonObject.getString("artist");//歌手名String pic = jsonObject.getString("pic120");//picture 歌曲图片String album = jsonObject.getString("album");//获取对应的urlString musicUrl = MusicDownload.getMusicUrl(rid);//System.out.println("musicUrl="+musicUrl);//下载//MusicUtils.downloadMusic(musicUrl, artist+"-"+name+".mp3");out.write("<td>"+(i+1)+"</td>");out.write("<td><img src='"+pic+"' alt='图片未找到'/></td>");//字符串的拼接//每一首歌的jsonJSONObject musicJson = new JSONObject();musicJson.fluentPut("name", artist+"-"+name);//拼接歌曲名称musicJson.fluentPut("pic", pic);musicJson.fluentPut("musicUrl", musicUrl);System.out.println(musicJson);//将每一首歌的json放到json数组中去array.add(musicJson);out.write("<td>");out.write("<form action='music_1.jsp' method='post' target='_blank'>");out.write("<input type='hidden' value='["+musicJson.toString()+"]' name='musicJson'/>");out.write("<input type='submit' value='"+name+"'>");out.write("</form>");out.write("</td>");//out.write("<td><a target='_blank' href='music_1.jsp?musicJson=["+musicJson.toString()+"]'>"+name+"</a></td>");out.write("<td>"+artist+"</td>");out.write("<td>"+album+"</td>");out.write("<td><audio src='"+musicUrl+"' controls='true'></audio></td>");out.write("</tr>");}%></table><!-- 分页栏 --><tr align="center"><!-- colspan="6":将5列进行合并 --><td colspan="6"><div align="center"><nav aria-label="..."><!-- 分页栏 --><ul class="pager"><a href="index.jsp?key=<%=key %>&pn=1&rn=4">首页</a>&nbsp;&nbsp;&nbsp;<li><a href="index.jsp?key=<%=key %>&pn=<%=(pn-1)%>&rn=4">上一页</a>&nbsp;&nbsp;&nbsp</li><li><a href="index.jsp?key=<%=key %>&pn=<%=(pn+1)%>&rn=4">下一页</a>&nbsp;&nbsp;&nbsp</li><li class="list"><form action="music_1.jsp" method="post" target="_blank" class="navbar-form navbar-left" role="search"><div class="form-group"><input type="hidden" value='<%=array.toString() %>' name="musicJson" class="form-control" placeholder="Search"></div><input type="submit" class="btn btn-default"  value="将本页加入播放列表"></form></li></ul></nav></div></td></tr></div></div></body>
</html>
  • (3).播放音乐时显示代码块music_1.jsp
<%@ page import="com.hugong.downloadDemo01.MusicDownload" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.alibaba.fastjson.JSONArray" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>湖工播放器</title><link rel='stylesheet' href='js/jquery-3.2.1.min.js'><!-- Bootstrap --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) --><script src="js/jquery-3.2.1.min.js"></script><!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 --><script src="js/bootstrap.min.js"></script><style>body{/* 进行设置背景图片 *//*background: url("images/bg_2.png") no-repeat center;*/}div{margin: auto;}.all{width: 800px;height: 100%;border: 2px red ;}.div_head{width: 800px;background: #DBB586;color: #DBB586;}.list{float: right;}</style></head><body><!-- 盒子模型 --><div class="all"><!-- 导航栏 --><div class="div_head"><nav class="navbar navbar-default"><div class="container-fluid"><!-- 首页 --><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="index.jsp">首页</a></div><!-- 搜索框 --><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><form class="navbar-form navbar-left"><div class="form-group"><input type="text" class="form-control" placeholder="请输入任意歌手名、歌名" name="key"></div><button type="submit" class="btn btn-default">搜索</button></form><ul class="nav navbar-nav navbar-right"><%--<li><a href="index_example2.jsp?key=<%=key %>&pn=<%=(pn-1)%>&rn=4">上一页</a>&nbsp;&nbsp;&nbsp</li>--%><%--<li><a href="index_example2.jsp?key=<%=key %>&pn=<%=(pn+1)%>&rn=4">下一页</a>&nbsp;&nbsp;&nbsp</li>--%><li><a href="index.jsp">返回</a></li></ul></div></div></nav></div><!-- 所有歌曲信息 --><div><%--<table class="table table-hover" >--%><table class="table table-hover" ><!-- 列表头 --><tr><td>序列号</td><td>歌曲封面</td><td>歌曲名</td><td>歌手</td><td>专辑</td><td>在线播放</td></tr><!-- 每一首首歌曲 --><%//这个括号百分号里面是写Java代码的String key = request.getParameter("key");//parameter://获取pnString pnStr = request.getParameter("pn");int pn = 1;if(pnStr != null && !"".equals(pnStr)){//将字符串形式的数字转化为数字类型pn = Integer.parseInt(pnStr);}//如果key为空,直接查询周杰伦的信息if(key == null || "".equals(key)){key = "周杰伦";}String jsonStr = MusicDownload.getMusic(key, pnStr, "4");JSONArray jsonArray = JSONObject.parseArray(jsonStr);//创建一个json的数组JSONArray array = new JSONArray();for (int i = 0; i < jsonArray.size(); i++) {//获取每个歌曲的信息JSONObject jsonObject = jsonArray.getJSONObject(i);//得到参数String rid = jsonObject.getString("rid");//歌曲idString name = jsonObject.getString("name");//歌曲名String artist = jsonObject.getString("artist");//歌手名String pic = jsonObject.getString("pic120");//picture 歌曲图片String album = jsonObject.getString("album");//获取对应的urlString musicUrl = MusicDownload.getMusicUrl(rid);//System.out.println("musicUrl="+musicUrl);//下载//MusicUtils.downloadMusic(musicUrl, artist+"-"+name+".mp3");out.write("<td>"+(i+1)+"</td>");out.write("<td><img src='"+pic+"' alt='图片未找到'/></td>");//字符串的拼接//每一首歌的jsonJSONObject musicJson = new JSONObject();musicJson.fluentPut("name", artist+"-"+name);//拼接歌曲名称musicJson.fluentPut("pic", pic);musicJson.fluentPut("musicUrl", musicUrl);System.out.println(musicJson);//将每一首歌的json放到json数组中去array.add(musicJson);out.write("<td>");out.write("<form action='music_1.jsp' method='post' target='_blank'>");out.write("<input type='hidden' value='["+musicJson.toString()+"]' name='musicJson'/>");out.write("<input type='submit' value='"+name+"'>");out.write("</form>");out.write("</td>");//out.write("<td><a target='_blank' href='music_1.jsp?musicJson=["+musicJson.toString()+"]'>"+name+"</a></td>");out.write("<td>"+artist+"</td>");out.write("<td>"+album+"</td>");out.write("<td><audio src='"+musicUrl+"' controls='true'></audio></td>");out.write("</tr>");}%></table><!-- 分页栏 --><tr align="center"><!-- colspan="6":将5列进行合并 --><td colspan="6"><div align="center"><nav aria-label="..."><!-- 分页栏 --><ul class="pager"><a href="index.jsp?key=<%=key %>&pn=1&rn=4">首页</a>&nbsp;&nbsp;&nbsp;<li><a href="index.jsp?key=<%=key %>&pn=<%=(pn-1)%>&rn=4">上一页</a>&nbsp;&nbsp;&nbsp</li><li><a href="index.jsp?key=<%=key %>&pn=<%=(pn+1)%>&rn=4">下一页</a>&nbsp;&nbsp;&nbsp</li><li class="list"><form action="music_1.jsp" method="post" target="_blank" class="navbar-form navbar-left" role="search"><div class="form-group"><input type="hidden" value='<%=array.toString() %>' name="musicJson" class="form-control" placeholder="Search"></div><input type="submit" class="btn btn-default"  value="将本页加入播放列表"></form></li></ul></nav></div></td></tr></div></div></body>
</html>

HttpClient模拟请求相关推荐

  1. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView...

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...

  2. 使用HttpClient模拟POST请求

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建 ...

  3. Java爬虫(二)-- httpClient模拟Http请求+jsoup页面解析

    博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye 写博客 发Chat 传资源 登录注册 原 Java爬虫(二)-- httpClient ...

  4. httpClient多线程请求

    使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以 ...

  5. 给HttpClient添加请求头(HttpClientFactory)

    前言 在微服务的大环境下,会出现这个服务调用这个接口,那个接口的情况.假设出了问题,需要排查的时候,我们要怎么关联不同服务之间的调用情况呢?换句话就是说,这个请求的结果不对,看看是那里出了问题. 最简 ...

  6. java api 测试工具_Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具

    本站工具,在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具后台所有实现代码.支持的请求协议有:Post.GetDelete.Put.Trace.Head.Options.特色是加了 ...

  7. 通过httpclient发送请求的几种方式,发送文件、参数、json对象

    使用工具:idea 框架:gradle.springboot 实现目标:使用 httpclient 发送文件/参数/json对象 method:post 主要用到的jar包: compile grou ...

  8. HttpClient 模拟登录手机版新浪微博

    手机版微博单点登录的URL为:http://3g.sina.com.cn/prog/wapsite/sso/login.php 我们先来看一下这个网页源代码: <html><head ...

  9. JAVA使用HttpClient模拟登录正方教务系统,爬取学籍信息和课程表成绩等,超详细登录分析和代码注解

    目录 前言 分析 代码实现 第一次GET POST登录 第二次Get 第三次GET 第四次GET 第五次GET 测试 完整代码 前言 最近在做一个APP,需要获取我们学校--武汉纺织大学皇家停水断电断 ...

  10. 使用HttpClient模拟登陆并爬取网页

    在使用Java进行网页爬虫时经常需要携带登陆的 Cookie 信息,然而 Cookie 是有时效性的,所以经常会碰到 Cookie 失效的情况.如何在 Cookie 失效后自动重新获取成了爬虫急需解决 ...

最新文章

  1. python3:利用SMTP协议发送QQ邮件+附件
  2. 872.叶子相似的树
  3. javaScript call 函数的用法说明
  4. Failed to convert property value of type java.lang.String to required type java.lang.Integer for pro
  5. Vue实战:音乐播放器(一) 页面效果
  6. html标签企业级命名规范
  7. VS2008个人博客系统
  8. android GMS介绍
  9. 嵌入式软件开发的特点和流程
  10. H264三种码率控制方法(CBR, VBR, CVBR,)CRF和CQP
  11. win7修复计算机卡了,win7升级到win10后突然很卡的修复方法(图文)
  12. 12. JLINK在线调试+软件调试方法与技巧
  13. 【程序员2公务员】一、基本认知
  14. (四)Python小甲鱼入门教程笔记——思维导图训练
  15. python3:实现输出等边三角形、直角三角形
  16. 正负样本的分配atss
  17. html5怎么实现雨滴效果,雨滴效果——HTML5之特效
  18. 在德国如何优雅地和同事说再见
  19. Qt+opencv+android
  20. 软件开发之版本管理Versioning

热门文章

  1. 每周论文精读04——A Survey on 3D Hand Pose Estimation: Cameras, Methods, and Datasets
  2. 【合天网安】SQLi-Labs系列之数字型报错注入
  3. 用别人的githut账号在自己电脑上拉取代码问题
  4. Mac安装虚拟机和CentOS
  5. RANGE MINIUM/MAXIUM QUERY问题
  6. 室内外一体化融合定位技术浅析--室内定位--新导智能
  7. 电脑一启动吃鸡就重启计算机,玩吃鸡老是重启电脑
  8. 【Linux】rm -rf 删除命令
  9. 即时通讯软件七大优势详解
  10. 科技热点周刊|马斯克卖掉特斯拉 10% 股票;Facebook 停用面部识别系统;微软拥抱 Metaverse;雅虎退出中国