记录Http访问服务接口出现 301 Moved Permanently

记录Http访问服务接口出现 301 Moved Permanently

一、项目背景

​ 在A服务中 需要通过远程调用 B服务接口 获取数据。A项目与B项目部署在不同的服务接口中。

  • 请求接口响应界面

​ 在调用B项目的接口时,响应的数据一直为 301 Moved Permanently Html代码,通过 response.getWriter().write(result); 将响应界面展示如下:

在这里插入图片描述

​ 但是直径通过浏览器界面访问该接口时,是能成功的远程调用并且返回正确的数据。排查调用远程接口的代码也没问题。 前期一直找不到原因所在!

  • 通过浏览器之间访问接口:

    在这里插入图片描述

    ​ 注意:这里通过浏览器访问该接口时,是通过了Https协议去访问的该接口(当时没注意这一点),但是在我代码中访问的地址,由于对接文档的原因,使用的是 Http来调用。

  • A 服务调用 B服务接口代码:

String strUrl = SSOServerTicket+ticket;
BufferedReader br = null;
String result = "";
try{URL realUrl = new URL(strUrl);URLConnection connection = realUrl.openConnection();//略:调用B服务对应接口所需要封装数据connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");br = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = br.readLine()) != null) {result += line;}
}catch(Exception e){e.printStackTrace();
}   finally {try {if (br != null) {br.close();}} catch (Exception e2) {e2.printStackTrace();}
}

二、问题排查

​ 通过查询资料看了很多相似的情况解决方案,尝试了很多解决方法,其中包括了 换远程调用的方式等。最终看见一个该类型的解决方案是 将请求地址的 http 改为 https 在进行远程调用,然后接口就能成功访问了!

​ 具体是什么原因导致出现 http 访问不了 https却能访问。目前暂时不能理解!在网上查询资料解释是因为:

​ B项目中全站启用了 HTTPS,在全站启用了 HTTPS 以后,用户可能还会使用 HTTP 访问,所有很多建议使用 301 Moved Permanently + HSTS ( Strict Transport Security Policy ) 的方式要求用户跳转到 HTTPS 后在访问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 使用ElementUI 显示异常

element提供的样例不能正常显示,需要进行配置 1.npm install element-plus --save 2.main.js // main.ts import { createApp } from vue import ElementPlus from element-plus //全局引入 import element-plus/dist/index.css import App from ./App.vue const …

道可云文旅元宇宙平台:全面赋能文旅产业数字化转型

随着科技的迅猛发展,元宇宙、人工智能和虚拟数字人等技术逐渐成为推动社会进步的重要力量。在这一背景下,道可云文旅元宇宙平台以其独特的创新理念和前沿技术,为数字文博领域带来了革命性的变革。 道可云文旅元宇宙平台运用先进的元宇宙、人…

[2024年4月最新]Python安装教程

一、Python下载 1、进入Python官网 官网地址:https://www.python.org 2、点击【Downloads】展开后点击【Windows】跳转到下载python版本页面,选择"Stable Releases"稳定版本,我下载的是Python 3.10.10版本,所以找到【…

[xboard]real6410-6.1 移植kernel 5.4.272

文章目录 获取源码方法一方法二方法三了解S3C6410内核相关1 设备文件2 mach-文件3 plat-文件配置real6410编译镜像测试问题1获取源码 方法一 进入官网,如下界面,点击http, 再依次

IPV6的相关网络问题

问题 ​​​​​​​ 目录 问题 一.什么是NAT64转换 1.NAT64的工作原理 IPv6到IPv4转换 IPv4到IPv6的响应转换 2.NAT64的优点 3.NAT64的缺点 二.NAT64转换如何实现 1.工作原理 2.实现步骤 DNS查询转换(DNS64) 地址转换(NAT64&a…

BTI的启用与构建

BTI分支目标识别精讲与实践系列 思考 1、什么是代码重用攻击?什么是ROP攻击?区别与联系? 2、什么是JOP攻击?间接分支跳转指令? 3、JOP攻击的缓解技术?控制流完整性保护? 4、BTI下的JOP如何…

三行命令解决Ubuntu Linux联网问题

本博客中Ubuntu版本为23.10.1最新版本,后续发现了很多问题我无法解决,已经下载了另外一个版本22.04,此版本自带网络 一开始我找到官方文档描述可以通过命令行连接到 WiFi 网络:https://cn.linux-console.net/?p10334#google_vig…

Docker容器(六)网络配置与数据卷

一、高级网络配置 1.1概述 当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。 同时,Docker 随机分配一个本地未占用的私有…

构建第一个ArkTS之基本语法概述

在初步了解了ArkTS语言之后,我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。 图1 示例效果图 本示例中,ArkTS的基本组成如下所示。 图2 ArkTS的基本…

C++ 封装

1.封装 cpp认为万事万物都可以封装 封装将属性和行为作为一个整体,表现生活中的事物。 将属性和行为加以权限控制。 语法: class 类名{ 访问权限: 属性或者行为 } //学生类 class Student { public:void setName(string name) {m_name name;}vo…

人工智能技术创业机会有哪些?

💂 个人主页: 同学来啦🤟 版权: 本文由【同学来啦】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助,欢迎关注、点赞、收藏和订阅专栏哦 文章目录 🥭 一、城市治理🍎 二、社交创新&#x1f3…

如何申请苹果个人开发者账户

1、苹果手机下载Developer APP,登录后,账户-注册-支付688 2、查看邮箱,会有邮件提醒上传身份证正反面,上传成功后会有邮件回复 3、审核时间为2天,如果没回复,及时联系客服,秒回复 https://de…

分享快速搭建鸿蒙应用的几种方式

鸿蒙今年快速发展,特别是不再兼容安卓,鸿蒙原生应用成为大家关注的重点。今天分享几个如何实现快速开发鸿蒙App的方法。 鸿蒙开发有多种开发模式:一种是使用ArkTS声明式;如果这种感觉还需要花时间学习的话,那么另一种…

MySQL分库分表的方式有哪些

目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而…

“筑爱助残 快乐出游”带残疾人之家的残疾人出游活动

为拓宽残疾人的视野、增强残疾人的自信和勇气,感受外面世界的美好和多彩,帮助他们融入社会拥抱大自然,重拾美好生活的信心,营造残健互助的社会氛围。4月10日,嘉善蒲公英志愿者团队组织爱心司机开展以“筑爱助残 快乐出…

如何实现异地公网环境访问本地部署的支付宝沙箱环境调试支付SDK

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【CSS】CSS三大特性、盒子模型

目录 CSS三大特性 1、层叠性 2、继承性 3、优先级 盒子模型 1、网页布局的本质 2、盒子模型(Box Model)组成 3、边框(border) 3.1、边框的使用 3.2、表格的细线边框 3.3、边框会影响盒子实际大小 4、内边距&#xff0…

通过前缀和来看golang的acm输入输出

前缀和 问题引入 package mainimport ("fmt" )func main() {var n, q, l, r intfmt.Scan(&n, &q)a : make([]int, n)ap : make([]int64, n 1)ap[0] 0for i : 0; i < n; i {fmt.Scan(&a[i])ap[i 1] ap[i] int64(a[i])}for j : 0; j < q; j {f…

创建型模式--1.单例模式【巴基速递】

1. 巴基的订单 在海贼世界中&#xff0c;巴基速递是巴基依靠手下强大的越狱犯兵力&#xff0c;组建的集团海贼派遣公司&#xff0c;它的主要业务是向世界有需要的地方输送雇佣兵&#xff08;其实是不干好事儿&#xff09;。 自从从特拉法尔加罗和路飞同盟击败了堂吉诃德家族 &…

【ArcGIS学习笔记】ArcMap打开就卡在文档加载界面好久不动,打开很慢,要好长时间

Arcmap之前用得好好&#xff0c;后来打开就卡在文档加载界面&#xff0c;然后界面就关闭了&#xff1f; - 知乎针对这一情况&#xff0c;主要有下面五种解决方法。其中&#xff0c;对于大部分用户而言&#xff0c;前两种方法大概率是可以解决问题的&#xff1b;…https://www.z…