2016-05-03 3 views
2

Я пытаюсь получить запрос от API с помощью:поток чтения/записи Тайм-аут вызывает Недопустимая операция Exception

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? Благодаря!

ответ

5

Для всех, кто приходит на эту страницу, проблема была неожиданной переменной null, которая не обрабатывалась в API. Без ответа запрос был исчерпан. Мое исправление было первым, попробуйте разрешить таймауты с моим клиентом. Однажды я смог сузить проблему до самих данных, и была моя проблема.

Этот ответ возвращается очень поздно, но я постараюсь получить ответы на любые вопросы, которые могут возникнуть в отношении моего ответа в будущем.

+0

Вы можете предоставить более подробную информацию об этом исправлении? – thefid

+0

@thefid я извиняюсь, так как это было так давно. Я передавал плохую оценку REST api, и это вызывало таймаут, предположительно из-за того, что конечная точка не передала нулевое значение и правильно ответила. – Rinktacular

2

Как вы можете видеть на скриншоте, CanTimeout является false. Таким образом, эти свойства должны вызывать исключение; от the msdn page of Stream:

Примечания к наследующему:

Свойство ReadTimeout должен быть переопределен, чтобы обеспечить соответствующее поведение для потока. Если поток не поддерживает таймаут, это свойство должно поднять InvalidOperationException

Имейте в виду, что вы ищете в отладчике, глядя на поток - исключение не будет выброшено в вашем приложении, пока вы на самом деле коснитесь свойств таймаута.

Смежные вопросы