当前位置: 首页 > 知识库问答 >
问题:

OpenAPI Generator(C#,. NET6)-在某些条件下超文本传输协议请求极慢

呼延德华
2023-03-14

我使用OpenAPI生成器为Thingsboard REST API生成C#客户端。然后,我使用这个客户端构建了一个应用程序,用于自动创建设备并将遥测数据写入Thingsboard。

当我在家工作并通过VPN连接到公司网络时,我的应用程序运行良好且速度相当快。但是,当我在现场工作时,我注意到对Thingsboard(托管在我们公司网络中的VM上)的每个http请求实际上都需要很长时间(最多30秒),我不知道为什么。我调用哪个 API 函数或endpoint并不重要,它们都很慢。

我已经调试了它,我可以肯定地说延迟是在 RestSharp.RestClient 中实现的这个函数调用中的某个地方造成的:

response = await client.ExecuteAsync<T>(req, cancellationToken).ConfigureAwait(false);

由于这是自动生成的客户端代码的深层次,我不知道如何进一步调试它。我注意到的一件重要事情是,这个问题100%局限于应用程序本身,而不是我的整个系统/连接。例如,当我通过Postman或直接在浏览器中调用API时,它工作正常,我在不到1秒内得到响应。

是什么导致了这个问题,我如何进一步调试它?

共有1个答案

杜联
2023-03-14

这取决于服务器的位置。如果它在您的办公室,它将给出快速响应。如果服务器在一个国家/地区,而您在另一个国家/地区,它将给出缓慢的响应

 类似资料:
  • 我正在使用GWT和Spring controller来管理http流量。有些请求可能需要很长时间,但我希望在超过给定时间时终止请求。 我如何配置超时Spring。我也使用Apache Tomcat 7.0。我试图在tomcat上inrease最大线程,但有一段时间tomcat工作缓慢,因为请求线程不会死。

  • 我有专有的基于http的API要从JMeter测试。不幸的是,API的一些endpoint希望http DELETE方法带有请求体(我知道它的API设计有问题,使用DELETE with request body,但我无法更改该API,需要对其进行测试)。 如何从JMeter测试它?似乎标准的HttpRequest采样器在没有任何警告的情况下默默忽略了我的身体有效载荷。(当我在《邮递员》中尝试它时

  • 我有以下伪代码 我想要的是,我循环遍历一个对象数组,每个对象都获得相关的用户和产品,然后订阅用户和产品。我怎么能那样做?

  • 我用Go编写了一个简单的服务器: 以及一个用Python编写的用于测试的简单客户端。以下是代码: 每次客户端访问服务器时,服务器都会产生这个错误: 我知道如何在Go中处理JSON Post请求 Python版本==3.4 Go版本==1.7 先谢谢你。

  • 我想知道你对这个概念的看法/意见。如果有替代方案?这是否可行/有益? 据我所知,对于每个http请求,服务器都会执行一些操作并返回http响应。 现在考虑任何场景,我们希望对服务器上运行的进程有更多的控制。 情景1:http请求发送- 在这里,资源被浪费了。 情况2:http请求发送- 在这里,客户端不知道服务器中运行的进程的状态。客户端必须等待,直到它获得超文本传输协议响应。 我的想法是:在初始

  • 这些天我正在学习如何使用谷歌排球。快速联网非常方便。似乎所有的请求都在Volley的后台运行。例如: 使用上面的代码,我们可以进行一个在后台运行的POST调用(非阻塞方式)。现在我的问题是:是否有可能以阻塞的方式进行POST呼叫?为什么我需要阻塞方式来进行REST呼叫?因为有些电话,比如签到,应该在做其他事情之前完成。 谢谢

  • 我有以下curl命令,它在bash shell中运行良好 我现在想通过一个简单的网页运行这个按钮点击。这是我的Javascript 但是当我通过网页按钮点击运行这个javascript时,它给我以下错误“网络错误:500内部服务器错误-http://ec2-54-226-250-92.compute-1.amazonaws.com:8080/ocr”,我的成功()方法永远不会被调用。 正如我所说,

  • 为什么它不起作用? 返回java.net中的错误=