从java后台向一路径发送请求,获得响应的参数,put get post ,还有一个返回URL的工具类,方便代码灵活修改

  1. import java.io.BufferedReader;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.io.UnsupportedEncodingException;
  9. import java.net.HttpURLConnection;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.net.URLConnection;
  13. import java.net.URLDecoder;
  14.  
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17.  
  18. import com.alibaba.fastjson.JSONException;
  19. import com.fuyin.service.UserServiceImpl;
  20.  
  21. public class HttpUrl {
  22. private static final Logger logger = LoggerFactory.getLogger(HttpUrl.class);
  23. /**
  24. * 输入URL 返回一卡通的参数
  25. * @param url
  26. * @return
  27. */
  28.  
  29. public static String getruslt(String url){
  30. String urlStr ="";
  31. String inputLine = null;
  32. String a="";
  33. //url = url.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
  34. //url = url.replaceAll("\\+", "%2B");
  35. try {
  36. urlStr = URLDecoder.decode(url, "UTF-8");
  37. System.out.println("请求路径"+urlStr);
  38. URL oracle = new URL(urlStr);
  39. URLConnection conn = oracle.openConnection();
  40. conn.setRequestProperty("Accept-Charset", "UTF-8");
  41. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
  42. while((inputLine = br.readLine()) != null){
  43. a+=inputLine;
  44.  
  45. }
  46. //b=URLDecoder.decode(a,"UTF-8");
  47. } catch (UnsupportedEncodingException e1) {
  48. // TODO Auto-generated catch block
  49. e1.printStackTrace();
  50. } catch (MalformedURLException e) {
  51. // TODO Auto-generated catch block
  52. e.printStackTrace();
  53. } catch (IOException e) {
  54. // TODO Auto-generated catch block
  55. e.printStackTrace();
  56. }
  57. System.out.println("返回的参数"+a);
  58. return a;
  59.  
  60. }
  61.  
  62. /**
  63. * 返回一卡通链接的公用地址
  64. * @return
  65. */
  66. public static String returnip(){
  67. //String ip="http://**********/";//测试
  68. String ip="**********/";//生产
  69. return ip;
  70.  
  71. }
  72. /**
  73. * PUT方法访问
  74. * @param url
  75. * @return
  76. */
  77. public static String getput(String url) {
  78. BufferedReader br = null;
  79. StringBuilder sb = new StringBuilder();
  80. try{
  81. URL myUrl = new URL(url);
  82. HttpURLConnection con = (HttpURLConnection)myUrl.openConnection();
  83. con.setDoInput(true);
  84. con.setDoOutput(true);
  85. con.setRequestMethod("PUT");
  86. con.setUseCaches(false);
  87. con.setInstanceFollowRedirects(true);
  88. con.setRequestProperty("Content-Type", "text/plain");
  89. con.setRequestProperty("charset", "utf-8");
  90. con.connect();
  91.  
  92. DataOutputStream out = new DataOutputStream(con.getOutputStream());
  93. out.flush();
  94. out.close();
  95.  
  96. br = new BufferedReader(new InputStreamReader(con.getInputStream()));
  97. String aLine = null;
  98. while((aLine = br.readLine()) != null){
  99. sb.append(aLine);
  100. }
  101. con.disconnect();
  102. }catch(Exception e){
  103.  
  104. }
  105.  
  106. return sb.toString();
  107. }
  108.  
  109. /**
  110. * 使用GET的方式登录
  111. * @param username
  112. * @param password
  113. * @return 登录的状态
  114. */
  115. public static String loginOfGet(String url1){
  116. HttpURLConnection conn = null;
  117. try {
  118. URL url = new URL(url1);
  119. conn = (HttpURLConnection) url.openConnection();
  120.  
  121. conn.setRequestMethod("GET");//GET和POST必须全大写
  122. conn.setConnectTimeout(10000);//连接的超时时间
  123. conn.setReadTimeout(5000);//读数据的超时时间
  124. conn.setRequestProperty("Content-type", "application/json;charset=UTF-8");
  125. int responseCode = conn.getResponseCode();
  126. if(responseCode==200){
  127. //访问成功,通过流取的页面的数据信息
  128. InputStream is = conn.getInputStream();
  129. String status = getStringFromInputStream(is);
  130. return status;
  131. }else{
  132. logger.debug("访问失败:"+responseCode);
  133. return responseCode+"";
  134. }
  135.  
  136. } catch (Exception e) {
  137. e.printStackTrace();
  138. } finally{
  139. if(conn!=null){
  140. conn.disconnect();//释放链接
  141. }
  142. }
  143. return null;
  144.  
  145. }
  146. /**
  147. * 使用POST提交方式
  148. * @param username
  149. * @param password
  150. * @return
  151. */
  152. public static String loginOfPost(String URL1,String str) {
  153. HttpURLConnection conn = null;
  154. try {
  155. URL url = new URL(URL1);
  156. conn = (HttpURLConnection) url.openConnection();
  157.  
  158. conn.setRequestMethod("POST");//GET和POST必须全大写
  159. conn.setConnectTimeout(10000);//连接的超时时间
  160. conn.setReadTimeout(5000);//读数据的超时时间
  161. conn.setDoOutput(true);//必须设置此方法 允许输出
  162. // conn.setRequestProperty("Content-Length", 234);//设置请求消息头 可以设置多个
  163.  
  164. //post请求的参数
  165. //String data = "username="+username+"&password="+password;
  166. String data = str;
  167. OutputStream out = conn.getOutputStream();
  168. out.write(data.getBytes());
  169. out.flush();
  170. out.close();
  171.  
  172. int responseCode = conn.getResponseCode();
  173. if(responseCode==200){
  174. //访问成功,通过流取的页面的数据信息
  175. InputStream is = conn.getInputStream();
  176. String status = getStringFromInputStream(is);
  177. return status;
  178. }else{
  179. logger.debug( "访问失败:"+responseCode);
  180. }
  181.  
  182. } catch (Exception e) {
  183. e.printStackTrace();
  184. } finally{
  185. if(conn!=null){
  186. conn.disconnect();//释放链接
  187. }
  188. }
  189. return null;
  190.  
  191. }
  192. /**
  193. * 通过字节输入流返回一个字符串信息
  194. * @param is
  195. * @return
  196. * @throws IOException
  197. */
  198. private static String getStringFromInputStream(InputStream is) throws IOException {
  199. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  200. byte[] buffer = new byte[1024];
  201. int len=0;
  202. while((len=is.read(buffer))!=-1){
  203. baos.write(buffer, 0, len);
  204. }
  205. is.close();
  206. //String status = baos.toString();// 把流中的数据转换成字符串, 采用的编码是: utf-8
  207. byte[] lens = baos.toByteArray();
  208. String status = new String(lens,"utf-8");
  209. baos.close();
  210. return status;
  211. }
  212.  
  213. }

java后台向路径发送请求获得相应参数的更多相关文章

  1. Java后台防止客户端重复请求、提交表单

    前言 在Web / App项目中,有一些请求或操作会对数据产生影响(比如新增.删除.修改),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱. 常见处理方案 1 ...

  2. iOS使用NSURLSession发送POST请求,后台无法接受到请求过来的参数

    iOS中发送POST请求,有时需要设置Content-Type,尤其是上传图片的时候. application/x-www-form-urlencoded: 窗体数据被编码为名称/值对.这是标准的编码 ...

  3. Java得到GET和POST请求URL和参数列表

    一 获取URL:getRequestURL() 二 获取参数列表: 1.getQueryString() 只适用于GET,比如客户端发送http://localhost/testServlet?a=b ...

  4. java后台接受web前台传递的数组参数

    前台发送:&warning_type[]=1,2 &warning_type=1,2 后台接收:(@RequestParam(value = "param[]") ...

  5. java后台接受不到vue传的参数

    @RequestMapping(value = "/delBelowImg") @Transactional public R delBelowFile(@RequestParam ...

  6. Android HTTP实例 使用GET方法和POST方法发送请求

    Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...

  7. vue--axios发送请求

    首先安装:axios $ npm install axios $ cnpm install axios //taobao源 $ bower install axios 或者使用cdn: <scr ...

  8. vue中使用axios发送请求

    我们知道,vue2.0以后,vue就不再对vue-resource进行更新,而是推荐axios,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求 1.安装axios cnpm ...

  9. C# Post Get 方式发送请求

    httpPost 方式发送请求 不带参数 /// <summary> /// 没有参数的post请求 /// </summary> public void HttpPostNo ...

随机推荐

  1. QQ个人信息保护 | 攻的对面叫防

    近来我们愈来愈重视个人信息保护,当接到骚扰电话时,你心里或许在想(我手机号怎么又被别人知道的?别人是怎么知道我手机号的?),现在的时代,手机已或不可缺,QQ几乎每个人都在用.而有些人总想保护个人QQ资 ...

  2. 七:MyBatis学习总结(七)——Mybatis缓存

    ---恢复内容开始--- 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地 ...

  3. MySQL索引(六)

    一.什么是索引 索引就像一本书的目录一样,如果在字段上建立索引,那么以索引为列的查询条件时可以加快查询的速度,这个就是MySQL优化的重要部分 二.创建主键索引 整个表的每一条记录的主键值在表内都是唯 ...

  4. apache2.4配置weblogic12c集群(linux环境)

    首先确定环境已装apache2.4,没装的话可以看下这篇文章apache2.4一键脚本安装(linux环境) 1.下载apache分发模块mod_wl_24.so 下载apache2.4的weblog ...

  5. Mac下的paths.d目录神奇用法

    首先,这个方法是通过PG的做法学到的,且这个方法只能在Mac下用,在Linux下还真没有这个方法. 这个paths.d的作用很简单,就是在里面创建一个文件,然后写上需要在全局命令行下用到的命令,直接配 ...

  6. Fiddler4抓包工具使用教程一

    本文参考自http://blog.csdn.net/ohmygirl/article/details/17846199,纯属读书笔记,加深记忆 1.抓包工具有很多,为什么要使用Fiddler呢?原因如 ...

  7. tensorflow基础篇-2

    #-*- coding:utf-8 -*- import tensorflow as tf sess=tf.Session() #整流水线单元relu print sess.run(tf.nn.rel ...

  8. Android中ListView的使用步骤

    第一步:  首先,在 布局文件中,声明listView控件. <ListView android:id="@+id/lv" android:layout_width=&quo ...

  9. Android 开发工具类 16_NotificationActivity

    在前台运行的 Activity 可以通过Dialog.Toast 向用户发出提示信息,而后台运行的程序,如下载.收到信息等 Service 应用,则需要使用 Notification(通知)向用户发出 ...

  10. FoxitReader软件下载并安装(图文详解)

    不多说,直接上干货! FoxitReader官方网址:https://www.foxitsoftware.com/downloads/ 结束 欢迎大家,加入我的微信公众号:大数据躺过的坑        ...