前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >uat环境和生产环境的区别_angular 生产环境 相对路径无效

uat环境和生产环境的区别_angular 生产环境 相对路径无效

作者头像
全栈程序员站长
发布于 2022-11-11 12:40:10
发布于 2022-11-11 12:40:10
65800
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

本人研发小白一名,时间:2017年12月21(周四),坐标:上海。项目上线,测试环境正常,上UAT环境后访问不到数据,于是开始步步分析,细细琢磨,最终成功上UAT,但影响了上生产环境的时间,造成项目延时发布,第一次遇到这么奇怪的事情,之后就是2017年12月26(周二)的上生产环境,不过可怕的事情还是发生了:本地、测试、UAT环境都正常,生产环境有访问不到数据,直到12月27号2:00才解决,以上是问题情景。

这边也想了很长时间:为什么UAT环境代码好好的,正式环境就不行了,拉的是一套代码,不同的地方就是Disconf配置文件了(这里我前后核对了不下六遍,前两遍确实有问题及时做了修改,最后一遍我是一个一个字核对的

)。无奈只好各种打Logger看日志,最后抓取到问题点是httpClient工具类的问题,前后重新写了三次httpClient工具类,最终皇天不负有心人。。。以下是我这边出现访问不到数据的三个情况:

1、Disconf环境配置文件的配置(本地、测试、UAT及生产环境都会有所差别),具体看各个环境的访问地址;

2、系统中访问的子系统接口是否同步上了相应的环境,在相应环境上直接访问接口验证是否部署成功;

3、httpClient工具类中http和https是有区别的,线上环境和UAT环境一定要是https://开头的(从发现这个问题和解决花了我不少时间),https是要有安全协议的,下面是我最后成功的httpClient工具类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Map;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

public class HttpsUtils{
	
	public String doGetForHttps(String url, Map<String, String> map, String charset) {
		  HttpClient httpClient = null;
		  String result = null;
		  try {
		   httpClient = new SSLClient();
		   HttpGet httpGet = new HttpGet(url);

		   HttpResponse response = httpClient.execute(httpGet);
		   if (response != null) {
		    HttpEntity resEntity = response.getEntity();
		    if (resEntity != null) {
		     result = EntityUtils.toString(resEntity, charset);
		    }
		   }
		  } catch (Exception ex) {
		   ex.printStackTrace();
		  }
		  return result;
		 }

		 class SSLClient extends DefaultHttpClient {
		  public SSLClient() throws Exception {
		   super();
		   SSLContext ctx = SSLContext.getInstance("TLS");
		   X509TrustManager tm = new X509TrustManager() {
		    @Override
		    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
		    }

		    @Override
		    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
		    }

		    @Override
		    public X509Certificate[] getAcceptedIssuers() {
		     return null;
		    }
		   };
		   ctx.init(null, new TrustManager[] { tm }, null);
		   SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
		   ClientConnectionManager ccm = this.getConnectionManager();
		   SchemeRegistry sr = ccm.getSchemeRegistry();
		   sr.register(new Scheme("https", 443, ssf));
		  }
		 }

这边都是用Get方式访问的,做的BI报表。。。当然对大牛来是比较简单(不喜勿喷),个人觉得问题确实不复杂,但是要足够耐心去解决,希望能对我们这些初学者有一定的帮助,代码人生~~~共同成长,加油!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187615.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月30日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java发送HTTPS请求
上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的 。我也是由于对接了其他企业后总结了一套发送 https的工具。大家网上找方法很多的,但是可不是你粘过来就能用啊,我也是踩过坑的,所以我这个工具,只要粘贴到你们自己项目里就可以用。我的工具跟网上没什么区别,唯一的区别是我亲身实战过,把需要注意的细节列出来,不让大家浪费时间。
胖虎
2019/06/26
5.3K0
【tomcat】HTTPS访问配置 + restful调用远程HTTPS绕过验证
由于是本地测试,请修改本地host文件C:\Windows\System32\drivers\etc\host
肖哥哥
2019/02/22
1.8K0
【tomcat】HTTPS访问配置 + restful调用远程HTTPS绕过验证
java模拟http/https post请求
之前每次代码执行到上述代码的第二行的时候,会等一段时间然后会捕获到Exception异常。
翎野君
2023/05/12
1.1K0
java模拟http/https post请求
写一个BASIC认证的https协议
仅供参考,转载请注明出处,谢谢 /**      * BASIC认证的https      * @param urlStr https请求的地址      * @return      */     public static String get(String urlStr) {         log.info("url-->" + urlStr);         String rs = "";         StringBuffer buffer = new StringBuf
用户1215919
2018/02/27
7750
《历史代码分析》4、发起Http请求
此工具类应该是复制网络上的某博主的代码,只能说简单好用,提供了常用的请求方法。但是,目前推荐使用开源的Hutool工具库,它包含许多常用的操作,提高开发效率,内网开发除外。
小码农薛尧
2025/03/10
860
《历史代码分析》4、发起Http请求
微信 开发诡异的40029错误invalid code错误 443 failed to respond错误的解决办法
大家好,又见面了,我是你们的朋友全栈君。 情景:使用静默授权或感知授权的方式将请求绑定到微信公众号的菜单栏上。链接如下: https://open.weixin.qq.com/connect/oaut
全栈程序员站长
2022/06/29
2.5K0
微信 开发诡异的40029错误invalid code错误 443 failed to respond错误的解决办法
Restful 介绍及SpringMVC+restful 实例讲解
restful不是一个框架,称为一种编码更烦更贴切吧,其核心类位于spring-web.jar中,即RestTemplate.class
肖哥哥
2019/02/22
5040
Restful 介绍及SpringMVC+restful 实例讲解
百度人脸识别API Java调用
工具类下载http://pan.baidu.com/s/1jIuo0N8 小Demo查询。 1.官网文档必须看 http://ai.baidu.com/docs 2.在管理中心创建应用及查看相关参数
小帅丶
2018/02/08
4.3K0
百度人脸识别API Java调用
Web服务器与客户端三种http交互方式
近期在对接项目时用到http方式与第三方交互数据,由于中间沟通不足导致走了不少弯路,至此特意花了点时间总结服务端与客户端数据交互的方式,本地搭建两个项目一个作为服务端,一个作为客户端。post可以有两种方式:一种与get一样,将请求参数拼接在url后面,这种服务端就以request.getParameter获取内容;另一种以流的方式写入到http链接中,服务端再从流中读取数据,在HttpURlConnection中分别用到了GET、POST请求方式,HttpClient以及commons-httpClient均以POST请求为例。
Jack Chen
2018/09/14
2.8K0
Web服务器与客户端三种http交互方式
https httppost ssl单向验证,json格式传输 java案例
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106088.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
5310
httpclient4.x访问https[通俗易懂]
https有单向认证和双向认证之分,单向认证即客户端只会认证服务端,双向认证是客户端需要认证服务端,服务端也需要认证客户端。
全栈程序员站长
2022/09/15
9430
【胖虎的逆向之路】Android自制Https证书实现双向认证
Hyper Text Transfer Protocol ,超文本传输协议, 是互联网使用最广泛的一种协议,所有的WWW文件必须遵循的标准,Http协议传输的数据都是未加密的,也就是明文,因此使用Http传输敏感协议是不安全的。
胖虎哥
2024/01/03
1.2K0
Mac中使用Mitmproxy/Charles拦截移动设备网络请求
拦截http proxy的软件很多,如 Fiddler,Charles等,能够实现对http通信的拦截,可以查验Request和Response参数,特别是移动设备快速普及,此类软件逐渐被用于移动设备APP的网络请求拦截。
码客说
2019/10/22
2K0
Mac中使用Mitmproxy/Charles拦截移动设备网络请求
android 安装p12证书,如何在Android中使用p12证书(客户端证书)
我试图在android中使用客户端证书。 我得到了一个.p12文件,我想用它来对服务器进行身份验证。如何在Android中使用p12证书(客户端证书)
全栈程序员站长
2022/09/13
2.7K0
android https安全连接
如果不需要验证服务器端证书,直接照这里做 public class Demo extends Activity {   /** Called when the activity is first created. */ private TextView text;   @Override public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);         
xiangzhihong
2018/02/01
1.6K0
Springboot2整合openFegin客户端(文件上传)
最近项目需要搭建一个项目,需求是使用已经存在的上传接口,使用fegin实现功能。现在可以把步骤分享一下,经测试可用。
用户5640963
2021/01/30
9200
java HttpsURLConnection 实现https请求
转自:http://www.blogjava.NET/etlan/archive/2006/06/29/55767.html 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问。但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点。本文在简要介绍JSSE的基础上提出了两种解决该问题的方法。   引言   过去的十几年,网络上已经积累了大量的Web应用。如今,无论是整合原有的Web应用系统,还是
wuweixiang
2018/08/14
2.4K0
java HttpsURLConnection 实现https请求
一桩由ssl证书过期引起的血案
公司全部站点升级了https,升级过程由同事们完成,我没有过问细节。ssl证书使用的是阿里云 的【Symantec免费版 SSL】一年免费。
王小宝
2018/07/06
2.4K0
一桩由ssl证书过期引起的血案
【Java爬虫】005-HttpClient学习笔记(补充:网页内容获取相关)
使用HttpClient可设置三种超时时间:RequestTimeout(获取连接超时时间)、ConnectTimeout(建立连接超时时间)、SocketTimeout(获取数据超时时间)。配置这三种超时时间,需要用到HttpClient的RequestConfig类中的方法custom(),该方法返回值为实例化的内部类Builder(配置器),其功能是配置先关请求的字段,还可以设置代理(proxy)、Cookie规范(cookieSpec)、是否允许HTTP相关认证等;
訾博ZiBo
2025/01/06
1000
RestTemplate调用https接口跳过证书验证
import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.nio.charset.StandardCharsets; import java.security.cert.Certific
JQ实验室
2022/02/10
2.5K0
推荐阅读
相关推荐
Java发送HTTPS请求
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验