【问题标题】:Stream Read/Write Timeout causes Invalid Operation Exception流读/写超时导致无效操作异常
【发布时间】:2016-05-03 14:10:17
【问题描述】:

我正在尝试使用以下 API 从 API 获取请求:

RestClient client = new RestClient("https://gds.eligibleapi.com/v1.5/coverage/all?api_key="
    + apiSecret + "&payer_id=" + payerID + "&service_provider_organization_name=" + 
    providerOrgName + "&provider_npi=" + NPI + "&member_id=" + ptPolicyID + 
    "&member_first_name=" + ptFirstName + "&member_last_name=" + ptLastName 
    + "&member_dob=" + ptDOB + &date=" + DOS + "&service_type=" + serviceType +
    "&format=x12");

var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
string response271 = response.Content;
Stream response271Stream = StringStream.GenerateStreamFromString(response271);

我不断收到在线错误:

Stream response271Stream = StringStream.GenerateStreamFromString(response271)

也就是说:

'response271Stream.ReadTimeout' 抛出 System.InvalidOperationException' 类型的异常

这是一张供参考的图片:

这只是我想与此 API 一起使用的几个调用之一。谁能帮我弄清楚为什么它在我请求流式传输 API 响应时失败了?谢谢!

【问题讨论】:

    标签: c# file-io httpwebrequest


    【解决方案1】:

    正如您在屏幕截图中看到的,CanTimeout 属性为false。所以这些属性应该抛出异常;来自the msdn page of Stream

    继承人须知:

    应覆盖 ReadTimeout 属性以为流提供适当的行为。如果流不支持超时,则此属性应引发 InvalidOperationException

    请记住,您正在查看正在查看流的调试器 - 在您实际触摸超时属性之前,不会在您的应用程序中引发异常。

    【讨论】:

      【解决方案2】:

      对于访问此页面的任何人,问题是 API 中未处理的意外空变量。没有响应,请求超时。我的解决方法是首先尝试允许我的客户超时。一旦到位,我就能够将问题缩小到数据本身,这就是我的问题。

      这个答案很晚才回来,但我会尽量回答任何人将来可能对我的答案提出的问题。

      【讨论】:

      • 您能否提供有关此修复的更多详细信息?
      • @thefid 我很抱歉,因为这是很久以前的事了。我向 REST api 传递了一个错误的值,它导致了超时,可能是由于端点没有处理空值并正确响应。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      相关资源
      最近更新 更多