java后台向路径发送请求获得相应参数
从java后台向一路径发送请求,获得响应的参数,put get post ,还有一个返回URL的工具类,方便代码灵活修改
- import java.io.BufferedReader;
- import java.io.ByteArrayOutputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.UnsupportedEncodingException;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.net.URLConnection;
- import java.net.URLDecoder;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import com.alibaba.fastjson.JSONException;
- import com.fuyin.service.UserServiceImpl;
- public class HttpUrl {
- private static final Logger logger = LoggerFactory.getLogger(HttpUrl.class);
- /**
- * 输入URL 返回一卡通的参数
- * @param url
- * @return
- */
- public static String getruslt(String url){
- String urlStr ="";
- String inputLine = null;
- String a="";
- //url = url.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
- //url = url.replaceAll("\\+", "%2B");
- try {
- urlStr = URLDecoder.decode(url, "UTF-8");
- System.out.println("请求路径"+urlStr);
- URL oracle = new URL(urlStr);
- URLConnection conn = oracle.openConnection();
- conn.setRequestProperty("Accept-Charset", "UTF-8");
- BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
- while((inputLine = br.readLine()) != null){
- a+=inputLine;
- }
- //b=URLDecoder.decode(a,"UTF-8");
- } catch (UnsupportedEncodingException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println("返回的参数"+a);
- return a;
- }
- /**
- * 返回一卡通链接的公用地址
- * @return
- */
- public static String returnip(){
- //String ip="http://**********/";//测试
- String ip="**********/";//生产
- return ip;
- }
- /**
- * PUT方法访问
- * @param url
- * @return
- */
- public static String getput(String url) {
- BufferedReader br = null;
- StringBuilder sb = new StringBuilder();
- try{
- URL myUrl = new URL(url);
- HttpURLConnection con = (HttpURLConnection)myUrl.openConnection();
- con.setDoInput(true);
- con.setDoOutput(true);
- con.setRequestMethod("PUT");
- con.setUseCaches(false);
- con.setInstanceFollowRedirects(true);
- con.setRequestProperty("Content-Type", "text/plain");
- con.setRequestProperty("charset", "utf-8");
- con.connect();
- DataOutputStream out = new DataOutputStream(con.getOutputStream());
- out.flush();
- out.close();
- br = new BufferedReader(new InputStreamReader(con.getInputStream()));
- String aLine = null;
- while((aLine = br.readLine()) != null){
- sb.append(aLine);
- }
- con.disconnect();
- }catch(Exception e){
- }
- return sb.toString();
- }
- /**
- * 使用GET的方式登录
- * @param username
- * @param password
- * @return 登录的状态
- */
- public static String loginOfGet(String url1){
- HttpURLConnection conn = null;
- try {
- URL url = new URL(url1);
- conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");//GET和POST必须全大写
- conn.setConnectTimeout(10000);//连接的超时时间
- conn.setReadTimeout(5000);//读数据的超时时间
- conn.setRequestProperty("Content-type", "application/json;charset=UTF-8");
- int responseCode = conn.getResponseCode();
- if(responseCode==200){
- //访问成功,通过流取的页面的数据信息
- InputStream is = conn.getInputStream();
- String status = getStringFromInputStream(is);
- return status;
- }else{
- logger.debug("访问失败:"+responseCode);
- return responseCode+"";
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally{
- if(conn!=null){
- conn.disconnect();//释放链接
- }
- }
- return null;
- }
- /**
- * 使用POST提交方式
- * @param username
- * @param password
- * @return
- */
- public static String loginOfPost(String URL1,String str) {
- HttpURLConnection conn = null;
- try {
- URL url = new URL(URL1);
- conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("POST");//GET和POST必须全大写
- conn.setConnectTimeout(10000);//连接的超时时间
- conn.setReadTimeout(5000);//读数据的超时时间
- conn.setDoOutput(true);//必须设置此方法 允许输出
- // conn.setRequestProperty("Content-Length", 234);//设置请求消息头 可以设置多个
- //post请求的参数
- //String data = "username="+username+"&password="+password;
- String data = str;
- OutputStream out = conn.getOutputStream();
- out.write(data.getBytes());
- out.flush();
- out.close();
- int responseCode = conn.getResponseCode();
- if(responseCode==200){
- //访问成功,通过流取的页面的数据信息
- InputStream is = conn.getInputStream();
- String status = getStringFromInputStream(is);
- return status;
- }else{
- logger.debug( "访问失败:"+responseCode);
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally{
- if(conn!=null){
- conn.disconnect();//释放链接
- }
- }
- return null;
- }
- /**
- * 通过字节输入流返回一个字符串信息
- * @param is
- * @return
- * @throws IOException
- */
- private static String getStringFromInputStream(InputStream is) throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len=0;
- while((len=is.read(buffer))!=-1){
- baos.write(buffer, 0, len);
- }
- is.close();
- //String status = baos.toString();// 把流中的数据转换成字符串, 采用的编码是: utf-8
- byte[] lens = baos.toByteArray();
- String status = new String(lens,"utf-8");
- baos.close();
- return status;
- }
- }
java后台向路径发送请求获得相应参数的更多相关文章
- Java后台防止客户端重复请求、提交表单
前言 在Web / App项目中,有一些请求或操作会对数据产生影响(比如新增.删除.修改),针对这类请求一般都需要做一些保护,以防止用户有意或无意的重复发起这样的请求导致的数据错乱. 常见处理方案 1 ...
- iOS使用NSURLSession发送POST请求,后台无法接受到请求过来的参数
iOS中发送POST请求,有时需要设置Content-Type,尤其是上传图片的时候. application/x-www-form-urlencoded: 窗体数据被编码为名称/值对.这是标准的编码 ...
- Java得到GET和POST请求URL和参数列表
一 获取URL:getRequestURL() 二 获取参数列表: 1.getQueryString() 只适用于GET,比如客户端发送http://localhost/testServlet?a=b ...
- java后台接受web前台传递的数组参数
前台发送:&warning_type[]=1,2 &warning_type=1,2 后台接收:(@RequestParam(value = "param[]") ...
- java后台接受不到vue传的参数
@RequestMapping(value = "/delBelowImg") @Transactional public R delBelowFile(@RequestParam ...
- Android HTTP实例 使用GET方法和POST方法发送请求
Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...
- vue--axios发送请求
首先安装:axios $ npm install axios $ cnpm install axios //taobao源 $ bower install axios 或者使用cdn: <scr ...
- vue中使用axios发送请求
我们知道,vue2.0以后,vue就不再对vue-resource进行更新,而是推荐axios,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求 1.安装axios cnpm ...
- C# Post Get 方式发送请求
httpPost 方式发送请求 不带参数 /// <summary> /// 没有参数的post请求 /// </summary> public void HttpPostNo ...
随机推荐
- QQ个人信息保护 | 攻的对面叫防
近来我们愈来愈重视个人信息保护,当接到骚扰电话时,你心里或许在想(我手机号怎么又被别人知道的?别人是怎么知道我手机号的?),现在的时代,手机已或不可缺,QQ几乎每个人都在用.而有些人总想保护个人QQ资 ...
- 七:MyBatis学习总结(七)——Mybatis缓存
---恢复内容开始--- 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地 ...
- MySQL索引(六)
一.什么是索引 索引就像一本书的目录一样,如果在字段上建立索引,那么以索引为列的查询条件时可以加快查询的速度,这个就是MySQL优化的重要部分 二.创建主键索引 整个表的每一条记录的主键值在表内都是唯 ...
- apache2.4配置weblogic12c集群(linux环境)
首先确定环境已装apache2.4,没装的话可以看下这篇文章apache2.4一键脚本安装(linux环境) 1.下载apache分发模块mod_wl_24.so 下载apache2.4的weblog ...
- Mac下的paths.d目录神奇用法
首先,这个方法是通过PG的做法学到的,且这个方法只能在Mac下用,在Linux下还真没有这个方法. 这个paths.d的作用很简单,就是在里面创建一个文件,然后写上需要在全局命令行下用到的命令,直接配 ...
- Fiddler4抓包工具使用教程一
本文参考自http://blog.csdn.net/ohmygirl/article/details/17846199,纯属读书笔记,加深记忆 1.抓包工具有很多,为什么要使用Fiddler呢?原因如 ...
- tensorflow基础篇-2
#-*- coding:utf-8 -*- import tensorflow as tf sess=tf.Session() #整流水线单元relu print sess.run(tf.nn.rel ...
- Android中ListView的使用步骤
第一步: 首先,在 布局文件中,声明listView控件. <ListView android:id="@+id/lv" android:layout_width=&quo ...
- Android 开发工具类 16_NotificationActivity
在前台运行的 Activity 可以通过Dialog.Toast 向用户发出提示信息,而后台运行的程序,如下载.收到信息等 Service 应用,则需要使用 Notification(通知)向用户发出 ...
- FoxitReader软件下载并安装(图文详解)
不多说,直接上干货! FoxitReader官方网址:https://www.foxitsoftware.com/downloads/ 结束 欢迎大家,加入我的微信公众号:大数据躺过的坑 ...