流读/写超时会导致无效的操作异常

时间:2016-05-03 14:10:17

标签: c# file-io httpwebrequest

我正在尝试使用以下命令从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类型的异常'

这是一张参考图片:

enter image description here

这只是我想要使用此API的一些调用之一。任何人都可以帮我弄清楚为什么它没有根据我的请求流式传输API的响应?谢谢!

2 个答案:

答案 0 :(得分:7)

对于访问此页面的任何人来说,问题是一个意外的null变量,它在API中未处理。没有回应,请求超时。我的修复是首先,尝试允许与我的客户超时。一旦到位,我就可以将问题缩小到数据本身,这就是我的问题。

这个答案很晚才会回来,但我将会尝试回答任何人对我未来答案的疑问。

答案 1 :(得分:2)

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

  

对继承者的说明:

     

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

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