c# - 发送开发时发生意外错误,但未实时发生
问题描述
我有一个非常奇怪的错误,已经让我发疯了好几天。
我在我的 Visual Studio 开发环境中运行以下代码并收到错误“发送时发生意外错误”。编译代码并将其移动到没有 Visual Studio 的机器上,它工作正常
环境是使用 Visual Studio 2015 的 .Net 4.7.1
public string Get(string resource)
{
string url = BuildResourceUrl(resource);
try
{
WebRequest req = WebRequest.Create(url);
req.Method = "GET";
req.ContentType = "application/json";
req.Headers.Add("X-Shopify-Access-Token", _apiPassword);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
WebResponse response = req.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;
}
catch (WebException ex)
{
string response;
using (var reader = new StreamReader(ex.Response.GetResponseStream()))
{
response = reader.ReadToEnd();
}
throw ex;
}
}
我已禁用所有防火墙和防病毒软件,但这没有什么区别。
解决这个问题的帮助将是最appriciated
解决方案
经过多次挖掘和挫折,我找到了解决方案。即使使用 .Net 4.7.1 我仍然必须使用以下代码
public string Get(string resource)
{
string url = BuildResourceUrl(resource);
try
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
WebRequest req = WebRequest.Create(url);
req.Method = "GET";
req.ContentType = "application/json";
req.Headers.Add("X-Shopify-Access-Token", _apiPassword);
WebResponse response = req.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;
}
catch (WebException ex)
{
string response;
using (var reader = new StreamReader(ex.Response.GetResponseStream()))
{
response = reader.ReadToEnd();
}
throw ex;
}
}
这似乎是 Shopify 特定问题,因为我在向其他提供商调用 API 时没有任何问题
推荐阅读
- amazon-web-services - 在 AdministratorAccess 和 Amazons3FullAccess 之间选择哪个策略
- python - 如何读取 urllib3 下载的 .net 文件?
- python - `.. == not ..` 周围的语法无效
- python - 将字典的“key”=value 转换为 key:value 的实用函数
- android - 为什么 HMS PushKit 需要 android.permission.REQUEST_INSTALL_PACKAGES
- django - Django- distinct 不能按顺序工作
- excel - Excel折线图不连续
- react-native - react-native-reanimated 如何在“Animated.timing”函数之间使用延迟
- c# - Unity2D 脚本错误 - 找不到类型或命名空间“播放器”C#
- javascript - 如何使用保存按钮创建多个 todolist?