java项目从后端直接访问其他项目或网站获取所需内容

在没有学习springcloud或dubbo时,开发中在页面中调用其他项目的方法,获取其他网站的内容时经常会受到跨域的限制,而且在前端访问并不够安全,比如目标登录网站是使用其他网站登录系统的时候,返回的加密字符串从前台获取就显得不够安全。

此时就需要用到后台访问其他网站或项目的功能了。此方法类似于爬虫

此例使用的是spring-boot项目。使用后台访问时要引用必要的jar包

 <dependency>
		    <groupId>commons-io</groupId>
		    <artifactId>commons-io</artifactId>
		    <version>2.4</version>
		</dependency>
		<dependency>
		    <groupId>com.alibaba</groupId>
		    <artifactId>fastjson</artifactId>
		    <version>1.2.46</version>
		</dependency>
		<dependency>
		    <groupId>net.sf.json-lib</groupId>
		    <artifactId>json-lib</artifactId>
		    <version>2.4</version>
		    <classifier>jdk15</classifier>
		</dependency>
		<dependency>
		    <groupId>commons-fileupload</groupId>
		    <artifactId>commons-fileupload</artifactId>
		    <version>1.3.3</version>
		</dependency>

然后写访问其他网站的方法

/*我返回的是一个对象集合,可根据个人需求修改,返回一个对象时跟获取到的数据对象属性一定要相同,不然会报错*/
public static List<VmAuthority> getJson(){
		array= new ArrayList<VmAuthority>();
		String walletUrl = "目标网站的地址";
		BufferedReader in = null;
		String result = "";
		try {
			URL getwalletAmountUrl = new URL(walletUrl);
			System.out.println(walletUrl);
			//打开连接,获取返回信息。
			URLConnection context = getwalletAmountUrl.openConnection();
			in = new BufferedReader(new InputStreamReader(
					context.getInputStream(), "UTF-8"));
			String line;
			while ((line = in.readLine()) != null){
				result += line;
			}
			result = result.substring(result.indexOf("["),
					result.indexOf("]") + 1);
			JSONArray jsonArray = JSONArray.fromObject(result);
			for (int i = 0; i < jsonArray.toArray().length; i++) {
				Object o = jsonArray.get(i);
				JSONObject jsonObject2 = JSONObject.fromObject(o);
				VmAuthority vmAuthority = (VmAuthority) JSONObject
						.toBean(jsonObject2, VmAuthority.class);
				array.add(vmAuthority);
			}
			nVersion=array.get(0).getNversion();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return array;
	}

最后就是另一个返回数据的controller层。跟普通的返回json数据的方法相同

@RequestMapping("/outputAuthority")
	@ResponseBody
	public Map<String, Object> outputAuthority(){
		Map<String,Object> map=new HashMap<String, Object>();
		try {
			List<DmAuthorize> list=bizAuthority.findListByLoginCode();
			map.put("rows",list);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return map;
	}

这样就能接收到目标数据了

此文参考:https://blog.csdn.net/srk950606/article/details/80219333

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网站服务器后端的运行过程可以概括为以下几个步骤: 1. 客户端发送请求:当用户在浏览器中输入网站的URL或与网站进行交互时,浏览器会发送HTTP请求到服务器。请求包括请求的资源、请求方法(GET、POST等)和其他相关信息。 2. Web服务器接收请求:Web服务器(如Nginx、Apache等)作为第一层接收到客户端的请求。它根据请求的URL和配置文件,将请求转发给后端应用程序。 3. 路由和控制器处理请求:后端应用程序(如使用Java的Spring框架、Python的Django框架等)接收到请求后,会根据路由配置找到对应的处理函数或控制器。处理函数或控制器负责解析请求参数、验证身份、执行相应的业务逻辑等。 4. 业务逻辑处理:在控制器中,后端应用程序会进行业务逻辑处理,包括数据查询、计算、验证等操作。可能还会调用其他服务或接口来获取所需数据或完成特定功能。 5. 数据访问:如果需要与数据库进行交互,后端应用程序会使用SQL语句或ORM工具(如Hibernate、SQLAlchemy等)来访问数据库。它可以执行查询、插入、更新和删除等操作,将数据存取到数据库中或从数据库中读取数据。 6. 生成响应:在业务逻辑处理完成后,后端应用程序会生成响应数据,一般是一个HTML页面或JSON格式的数据。响应数据包括状态码、头部信息和响应体。 7. 响应返回给客户端:生成的响应数据会被发送回Web服务器,然后通过网络传输给客户端。Web服务器将响应返回给客户端,客户端的浏览器会解析响应并渲染页面或处理响应数据。 整个过程中,服务器后端还可能涉及到认证授权、缓存、日志记录等功能。认证授权用于验证用户身份和控制访问权限。缓存可以提高数据访问速度和减轻数据库压力。日志记录可以记录服务器的运行情况和错误信息,用于故障排查和性能优化。 以上是网站服务器后端的运行过程的一般概述,具体的实现方式和流程可能因不同的技术栈和框架而有所差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值