2014-10-08 6 views
0

У меня серьезная проблема и надеюсь, что кто-то может помочь.Parse.com REST API ничего не возвращает

У нас есть веб-приложения и приложения для Android, которые используют Parse в качестве своего бэкэнд. Проблема, с которой мы сталкиваемся, обоим. Я объясню проблему с Android.

Мы используем API REST для сохранения данных до Parse.com. Причина, по которой мы не используем SDK, заключается в том, что мы хотим использовать пакетную операцию, доступную только в RESTAPI.

{ 
    "requests": [ 
    { 
     "body": { 
     "isFriable": false, 
     "haDetail": "", 
     "sizeOther": "", 
     "colourOther": "", 
     "texture": "", 
     "fieldInspection": { 
      "__type": "Pointer", 
      "className": "FieldInspection", 
      "objectId": "YS5bXHBwDu" 
     }, 
     "surfaceSubType": { 
      "__type": "Pointer", 
      "className": "SurfaceSubType", 
      "objectId": "d4IL5k1pv5" 
     }, 
     "size": { 
      "__type": "Pointer", 
      "className": "HomogenousMaterialSize", 
      "objectId": "ezr3uHDUvt" 
     }, 
     "colour": { 
      "__type": "Pointer", 
      "className": "HomogenousMaterialColour", 
      "objectId": "NqYXJcOkPE" 
     } 
     }, 
     "method": "POST", 
     "path": "/1/classes/HomogenousArea" 
    } 
    ] 
} 

Приведенный выше мой запрос. Это делается для https://api.parse.com/1/batch, используя базовый HttpClient по умолчанию.

Когда мы выполняем HTTP-запрос, он иногда просто зависает, он не возвращает никакого результата. Примерно через каждые 5 или 6 запросов это делается. Точные данные о последующем запросе, который преуспеет, будут проходить через штраф. Проблема в том, что в этот момент мы сохраняем повторяющиеся записи в Parse, поскольку наша логика синхронизации никогда не завершалась, так как мы не получили ответа.

Есть ли что-нибудь в Parse, которое мы можем использовать для отладки запросов вроде этого? Ниже приведена текущая реализация клиента клиента. ПРИМЕЧАНИЕ. Также добавьте OkHttp с Square и нажмите ту же самую проблему.

 // Instantiate the http client to make the batch request 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost post = setupHttpPost(url); 

     // Assign the data to the post 
     StringEntity entity = new StringEntity(insertData); 
     post.setEntity(entity); 

     // Setup the response handler 
     ResponseHandler response = new BasicResponseHandler(); 

     // Make the call to Post the new data 
     Object rersponse = httpClient.execute(post, response); 
     if (rersponse != null) { 
      return rersponse.toString();  
     } 
     return null; 

ответ

0

странно поведение ./batch ....

Убедитесь, что вы не хватает ответов об ошибках синтаксического анализа. IMO - иногда могут быть ошибки анализа JSON или что-то, что можно упустить, если вы не уделяете пристальное внимание обработчику на Entity в http Response ....

Я не использовал Parse batch api. Я использовал многопоточный http-клиент и не видел распространенных проблем типа тайм-аута, которые вы упомянули?

Поскольку вы используете REST, вы должны быть в состоянии обернуть несколько тестовых звонков в CURL клиента, который вы можете инструмент с CURL CLI переключается обеспечить более -debug ...

Поскольку вы используете REST, вы могли бы перейти от пакетный интерфейс к многопоточному клиенту (см. пример «потоки», см. пример «config» в org.apache ...

Удивительно, но если вы разбиваете свои партии, возможно, на фоне более высокого количества Http EXEC с меньшей полезной нагрузкой может работать лучше ????

Пример конфигурации по ссылке показывает, как y ou может конфигурировать размеры пула по домену и как вы можете использовать таймауты (время ожидания соединения, тайм-аут req и т. д.).

+0

Спасибо за ответ Роберт. Метод вызова outter завершается в AsyncTask, поэтому сетевые операции не блокируют поток пользовательского интерфейса. Я также сократил объем данных, поступающих в запрос, и все тот же. Мой следующий порт захода - отправить напрямую, но я подозреваю, что не увижу никаких ошибок, так как его работа будет продолжаться –

+0

. Я бы тренировал AsnycTask, вот где ваша проблема. –

+0

Я уже иду по этому пути. Дайте вам знать результат. Еще раз спасибо за быстрые ответы –

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