当前位置: 首页 > news >正文

企业做网站一般多少钱网站后台出现乱码

企业做网站一般多少钱,网站后台出现乱码,分类网站怎么做seo,北京快三平台使用Java进行服务调用时#xff0c;避免不了要使用模拟HTTP请求来实现模拟#xff0c;我在开发过程中恰巧遇到了这类的业务需求#xff0c;所以就对这类的方法进行了一次总结#xff0c;原理层次的东西暂时不考虑#xff0c;毕竟HTTP的底层实现啥的#xff0c;东西挺多且…使用Java进行服务调用时避免不了要使用模拟HTTP请求来实现模拟我在开发过程中恰巧遇到了这类的业务需求所以就对这类的方法进行了一次总结原理层次的东西暂时不考虑毕竟HTTP的底层实现啥的东西挺多且挺复杂的对我的项目而言理解这些东西并不能从直观上得到很明显的提升或帮助还是代码来的比较实在so贴出几种方法的总结用作备份免的日后再重复造轮子。第一种白痴方案最原始的解决方案功能暂时是实现了但是里面会涉及到通用性和性能等的问题暂时不考虑public class HttpRequest {private static final Logger LOGGER LoggerFactory.getLogger(HttpRequest.class.getName());/*** 向指定URL发送GET方法的请求** param url 发送请求的URL* param param 请求参数请求参数应该是 name1value1name2value2 的形式。* return URL 所代表远程资源的响应结果*/public static String sendGet(String url, String param) {StringBuilder result new StringBuilder();BufferedReader bufferedReader null;try {String urlNameString url ? param;URL realUrl new URL(urlNameString);// 打开和URL之间的连接URLConnection connection realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty(accept, */*);connection.setRequestProperty(connection, Keep-Alive);connection.setRequestProperty(user-agent, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1));// 建立实际的连接connection.connect();// 获取所有响应头字段Map map connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {LOGGER.info(key : {}, map.get(key));System.out.println(key --- map.get(key));}// 定义 BufferedReader输入流来读取URL的响应bufferedReader new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line bufferedReader.readLine()) ! null) {result.append(line);}} catch (Exception e) {LOGGER.error(HTTP GET error : {}, e.getMessage());}// 使用finally块来关闭输入流finally {try {if (bufferedReader ! null) {bufferedReader.close();}} catch (Exception e2) {e2.printStackTrace();}}return result.toString();}/*** 向指定 URL 发送POST方法的请求** param url 发送请求的 URL* param param 请求参数请求参数应该是 name1value1name2value2 的形式。* return 所代表远程资源的响应结果*/public static String sendPost(String url, String param) {LOGGER.info(url : {}, url);LOGGER.info(param : {}, param);PrintWriter out null;BufferedReader in null;StringBuilder result new StringBuilder();try {URL realUrl new URL(url);// 打开和URL之间的连接URLConnection conn realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty(accept, */*);conn.setRequestProperty(connection, Keep-Alive);conn.setRequestProperty(user-agent, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1));conn.setRequestProperty(accept-language, en-US,en;q0.5);// 发送POST请求,必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line in.readLine()) ! null) {result.append(line);}} catch (Exception e) {LOGGER.error(HTTP POST error : {}, e.getMessage());}//使用finally块来关闭输出流、输入流finally {try {if (out ! null) out.close();if (in ! null) in.close();} catch (IOException ex) {LOGGER.error(close IO error : {}, ex.getMessage());}}return result.toString();}}第二种升级版本基于上个版本进行的简化版看起来更简洁一些public class HttpClientUtil {private static final Logger LOGGER LoggerFactory.getLogger(HttpClientUtil.class.getName());public static String sendGet(String url, String param) throws IOException {LOGGER.info(request url info : {}, url);HttpGet request new HttpGet(url ? param);return send(request);}public static String sendPost(String url, String param) throws IOException {LOGGER.info(request url info : {}, url);HttpPost request new HttpPost(url);request.setEntity(new StringEntity(param, ContentType.create(application/json;charsetUTF-8)));return send(request);}private static String send(HttpRequestBase request) throws IOException {String message ;request.setHeader(User-Agent, Mozilla/5.0 (Windows NT 6.1; WOW64) ...);request.setHeader(accept, */*);request.setHeader(connection, Keep-Alive);CloseableHttpClient httpclient HttpClients.createDefault();CloseableHttpResponse response httpclient.execute(request);HttpEntity entity response.getEntity();ByteArrayOutputStream outStream new ByteArrayOutputStream();if (entity ! null) {long length entity.getContentLength();if (length ! -1 length 2048) {message EntityUtils.toString(entity);} else {InputStream in entity.getContent();byte[] data new byte[4096];int count;while ((count in.read(data, 0, 4096)) ! -1) {outStream.write(data, 0, count);}message new String(outStream.toByteArray(), UTF-8);}}LOGGER.info(response message info : {}, message);return message;}}第三种使用第三方工具包这一种方案彻底告别了傻瓜式的轮子创造过程直接使用开源的已封装好的代码工具来实现这一过程但是有个问题就是他会产生轮询日志以此保持链接通讯如果看着不爽可以改源码里的配置或者使用log4j2中的日志过滤器直接将他的日志过滤掉并只打印程序的日志信息看起来更清爽一些PS这个工具包全方位支持RESFUL请求方式这里只列举常用的两种其他的请自行实验public class UnirestUtil {private static final Logger LOGGER LoggerFactory.getLogger(UnirestUtil.class.getName());/**** param url 目标url* param name 参数名称* param param 请求参数* return 网络传输状态码或请求结果*/public static HttpResponse sendGet(String url, String name, String param) throws UnirestException {LOGGER.debug(request url info : {}, url);HttpResponse response Unirest.get(url).header(accept, application/json;charsetUTF-8).queryString(name, param).asString();LOGGER.debug(response status info : {}, response.getStatus());LOGGER.debug(response status message info : {}, response.getStatusText());return response;}/**** param url 目标url* param name 参数名称* param param 请求参数实体* return 网络传输状态码*/public static HttpResponse sendPost(String url, String name, String param) throws UnirestException {LOGGER.debug(request url info : {}, url);HttpResponse response Unirest.post(url).header(accept, application/json;charsetUTF-8).queryString(name, param).asString();LOGGER.debug(response status info : {}, response.getStatus());LOGGER.debug(response status message info : {}, response.getStatusText());return response;}}OK至此几种方案都贴出来了可能还有更简洁可靠的方案来实现这个功能但是我还没找到如果您有更好的方法请留言交流分享出来吧谢谢。
http://wiki.neutronadmin.com/news/43169/

相关文章:

  • 旅游网站建设受众分析外贸网站建设服务
  • 金银饰品那家网站做的好万互网站建站
  • 镇江网站建设优化制作公司wordpress控制上下页链接
  • 建站流程网站上线wordpress访问慢
  • 做淘宝网站用什么软件有哪些内容在哪个网站做引号流最好
  • 广州 网站 建设 制作贵州安顺住房城乡建设网站
  • 有关网站设计与制作的论文上海闵行区房价
  • 巧克力网站建设需求分析那个网站可以找人做设计师
  • 做收费网站一个网页的制作
  • 福州电商网站建设大型网站过程
  • 做网站竟然不知道cms广州建设企业网站
  • 苏州网站建站推广智慧团建登录入口官方网站
  • 学习网站建设建议调查问卷网站关键词如何快速上首页
  • 网站后台无ftp永久短链接
  • 深圳设计网站的公司wordpress文章后缀
  • 百度站长平台怎么用网站建设宽度
  • 如何添加网站为信任站点企业网络设计与实现毕业设计
  • 房地产网站怎么推广科技备案企业网站
  • 网站建设以后主要做什么自建网站平台有哪些
  • 如何才能做好品牌网站建设哈尔滨建设工程信息招标
  • 中律之窗网站建设如何做赚钱的网站
  • 有用unity做网站的吗网站建设大致价格2017
  • 搜索关键词可以过得网站东莞网站制作哪家最便宜
  • 哔哩哔哩网站开发图片wordpress更改后台进入默认页面
  • 网站建设财务分析给公司做网站多少钱
  • 便宜做外贸网站手机p2p网站开发
  • 山东网站建设开发维护网站建设 设计业务范围
  • 网站域名查询石家庄网页设计的公司
  • 台州服务网站wordpress58同城主题
  • 图书馆评估定级关于网站建设标准建筑室内设计公司