我面临一个奇怪的问题,我能做到这一点(https://my.factcorp.com/ABCorp/Reporting/api/Events/)来自POSTMAN的RESTAPI调用,但不是来自VisualStudioWeb测试。
收到https://my.factcorp.com/ABCorp/Reporting/api/Events/ HTTP/1.1
主持人:my.factcorp.com
连接:保持活力
授权:基本
缓存控制:没有缓存
User-Agent: Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(KHTML, like Gecko)Chrome/54.0.2840.71Safari /537.36
邮递员代币:4dfaa309-c7d8-6785-d59c-9679ad4f3aaa
接受:/
接受编码:gzip、deflate、sdch、br
接受语言:en-US,en;q=0.8
然而,当我从Webtest调用同一个RESTAPI时,下面是一个错误
请求失败:远程主机强制关闭了现有连接
我可以看到邮递员在请求中添加了一些额外的头,我还尝试手动添加所有这些头。
任何想法都值得赞赏。
谢啦
实际上找到了根本原因,即为什么从Postman而不是VS WebTest成功调用。
原因是邮递员足够聪明,可以将请求安全性更正为(TLS/1.2)
然而WebTest无法做到这一点,因为它使用较低级别的System.Net协议。
现在要解决这个问题,我们可以编写自定义WebTest插件,它可以覆盖默认的安全行为。
using System;
using System.ComponentModel;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace MyWebTest
{
[Description("This plugin will force the underlying System.Net ServicePointManager to negotiate downlevel SSLv3 instead of TLS. WARNING: The servers X509 Certificate will be ignored as part of this process, so verify that you are testing the correct system.")]
public class TLS12ForcedPlugin : WebTestPlugin
{
[Description("Enable or Disable the plugin functionality")]
[DefaultValue(true)]
public bool Enabled { get; set; }
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
base.PreWebTest(sender, e);
//For TLS
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
//For SSL
//ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//we wire up the callback so we can override behavior and force it to accept the cert
ServicePointManager.ServerCertificateValidationCallback = RemoteCertificateValidationCB;
//let them know we made changes to the service point manager
e.WebTest.AddCommentToResult(this.ToString() + " has made the following modification-> ServicePointManager.SecurityProtocol set to use SSLv3 in WebTest Plugin.");
}
public static bool RemoteCertificateValidationCB(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
//If it is really important, validate the certificate issuer here.
//this will accept any certificate
return true;
}
}
}
当我在AWS平衡器下部署我的应用程序时,应用程序会从myDir/myAppName调用一些资源。但是样式资源是从根调用的,比如myDir/。 例如myDir/myAppName/index.html可用于loadBalancer.但是myDir/myStilesheet.css不可访问。 如何在myDir/myAppName下设置这些资源(css等)? 提前谢谢!
问题内容: 我创建了一个xPages应用程序,该应用程序使用了位于服务器端javascript库中的许多服务器端javascript代码功能。 现在,我有一些Java代码位于java设计元素中,我想使用它们来调用javascript函数。 我确实知道从Java调用javascript是不合逻辑的,但是我想所有服务器端javascript都已编译为java,因此我认为可能可以获取所生成的已编译jav
问题内容: 为了说明我为Android应用编写JUnit测试的最新问题,我编写了一个简单示例,其中包含两个活动和。前者包含(用于显示),而后者仅包含。中的for按钮只是启动的实例。 现在,我想使用JUnit测试此方法。所以我写了以下测试: 运行此测试将给出以下输出: 据我所知,调用不会启动的实例。是什么赋予了? 问题答案: 如对我的一个相关问题的回答所示,问题是我正在调用UI线程。意识到这一点之后
问题内容: 对于“从Java调用Clojure”而言,大多数Google热门歌曲都已过时,建议您使用它clojure.lang.RT来编译源代码。假设您已经从Clojure项目构建了一个jar并将其包含在类路径中,那么您能否帮助您清楚地说明如何从Java调用Clojure? 问题答案: 从Clojure 1.6.0开始,有一种新的首选方式来加载和调用Clojure函数。现在,此方法优于直接调用RT
问题内容: 从python调用Java的最佳方法是什么?(对我来说,jython和RPC不是一个选择)。 我听说过JCC:http : //pypi.python.org/pypi/JCC/1.9 一个用于从C / Python调用Java的C 代码生成器,但这需要编译所有可能的调用。我希望有另一个解决方案。 我听说过JPype:http ://jpype.sourceforge.net/ 教程:
问题内容: 我有一系列XML文件,这些文件引用XSLT文件以在浏览器中呈现为HTML。其中一些链接会在常规页面上执行AJAX调用以请求HTML,并将其插入页面上已有的DIV中。 我想做的是从该页面调用链接的Web服务,然后接收XML,然后以与原始页面相同的方式将其处理为HTML,然后通过AJAX插入当前页面的DIV中。 我的问题是:我将如何获取Javascript下载的XML并使用Javascri
我需要从Java中调用一些Python代码。 我知道Jython存在,或者Java有自己的Python解释器。 问题是,所说的Python代码使用一些本机(C)编译代码,甚至在GPU上运行一些东西。 所以我可以把它分为两个问题: < Li > Jython或Java的Python解释器支持这个吗?也就是说,Python代码(当从Java调用时)将与所有的C和GPU部分一起运行,因此运行速度将与它独
问题内容: 我有一个编译的Python库和API文档,我想从Ruby使用。 是否可以加载Python库,实例化其中定义的类并从Ruby对该对象调用方法? 问题答案: 本文提供了一些从Python运行Ruby代码的技术,这些技术也应适用于相反的方向(例如XML- RPC或管道),以及从Ruby运行Python代码的特定技术。特别是rubypython或Ruby / Python 看起来像他们可以做您