У меня серьезная проблема и надеюсь, что кто-то может помочь.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;
Спасибо за ответ Роберт. Метод вызова outter завершается в AsyncTask, поэтому сетевые операции не блокируют поток пользовательского интерфейса. Я также сократил объем данных, поступающих в запрос, и все тот же. Мой следующий порт захода - отправить напрямую, но я подозреваю, что не увижу никаких ошибок, так как его работа будет продолжаться –
. Я бы тренировал AsnycTask, вот где ваша проблема. –
Я уже иду по этому пути. Дайте вам знать результат. Еще раз спасибо за быстрые ответы –