2015-04-25 1 views
0

Я получаю это исключение при вызове LIST с большим количеством идентификаторов объявлений (> 20). При вызове LIST с примерно 10 объявлениями он работает нормально, и для каждого вызова требуется около 30 секунд.GoogleApiException в Google.Apis.Adexchangebuyer.v13 при вызове AdexchangebuyerService.Creatives.List

Ниже приведены сведения об исключении:

Google.GoogleApiException was caught HResult=-2146233088 Message=Google.Apis.Requests.RequestError Backend Error [500] Errors [ Message[Backend Error] Location[ - ] Reason[backendError] Domain[global] ] 

Source=Google.Apis ServiceName=adexchangebuyer StackTrace: at Google.Apis.Requests.ClientServiceRequest`1.Execute() in c:\code\google.com\google-api-dotnet-client\default\Tools\Google.Apis.Release\bin\Debug\test\default\Src\GoogleApis\Apis\Requests\ClientServiceRequest.cs:line 102 InnerException: 

Это код вызова с использованием Google.Apis.AdExchangeBuyer.v1_3 1.9.0.48: (Я также пробовал с помощью 1.9.0.51)

var listRequest = this.AdexchangebuyerService.Creatives.List(); 
    listRequest.MaxResults = 1000; 
    listRequest.BuyerCreativeId = new Repeatable<string>(creativeIds); 
    // creativeIds is IEnumerable<string>; (fails with 20 creative ids, passes with 10) 
    var listOfCreatives = listRequest.Execute(); // -- exception thrown here 

запрос захвачен в стельке с помощью клиентской библиотеки:

GET https://www.googleapis.com/adexchangebuyer/v1.3/creatives?key={YOUR_API_KEY}&pageToken=mypa‌​getoken&maxResults=1000&buyerCreativeId=i7bhb44u&buyerCreativeId=f5bfbul2 
HTTP/1.1 
User-Agent: AdExchangeBuyer google-api-dotnet-client/1.9.1.12394 (gzip) 

Это запрос с использованием полотна в terface (https://developers.google.com/ad-exchange/buyer-rest/v1.3/creatives/list):

GET https://www.googleapis.com/adexchangebuyer/v1.3/creatives?buyerCreativeId=i7bhb44u&buyerCreativeId=f5bfbul2&key={YOUR_API_KEY} 

ответ

0

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

  1. Если у вас есть более чем x (в вашем случае 10) предметов, разделите его на несколько вызовов. Похоже, что для 10 предметов требуется больше 20 секунд, поэтому вы можете разбить его, и вы НЕ получите какой-то тайм-аут.
  2. Изменение таймаута по умолчанию для более высокого номера, чем значение по умолчанию (которое я прочитал где-то в 100, но я не нашел его в официальной документации - https://msdn.microsoft.com/en-us/library/system.net.http.httpclient.timeout%28v=vs.118%29.aspx). Вы можете сделать следующее:

    this.AdexchangebuyerService.HttpClient.Timeout = 
        TimeSpan.FromSeconds(200); 
    
+0

Я разделив на вызов, но иногда у меня есть 5000 творческие идентификаторы, и это в результате чего около 500 звонков, каждый из которых принимает около 20-30-х годов, не очень практично ... Я заметил, что, используя веб-интерфейс для запуска операции с списком, я передал намного больше 20 объявлений, и он выполнялся в течение примерно секунды без ошибок. –

+0

Итак, вы предполагаете, что клиентская библиотека замедляет вас ... Это странно, потому что это ответ, который требует времени, не так ли? Обращается ли запрос HTTP одинаково (используя Fiddler или какой-либо другой инструмент, который захватил ваш запрос)? – peleyal

+0

Не стесняйтесь добавлять его в свой поток, он будет более читабельным. Можете ли вы также указать, как выглядит запрос веб-интерфейса (Google API explorer?)? Спасибо – peleyal

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

  • Нет связанных вопросов^_^