Parse.com REST API不会返回任何内容

时间:2014-10-08 14:15:10

标签: android http parse-platform response

我遇到了一个重大问题,希望有人可以提供帮助。

我们有使用Parse作为后端的网络和Android应用程序。我们遇到的问题都发生在两者上。我将解释Android问题。

我们使用REST API将数据保存到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"
    }
  ]
}

以上是我的要求。使用基本的默认HttpClient将其推送到https://api.parse.com/1/batch

当我们执行HTTP请求时,它有时会挂起,它不会返回任何结果。每5或6个请求中就有一个会这样做。成功的后续请求中的完全相同的数据将会很好。问题是,在那时我们有重复的记录持续到Parse,因为我们的同步逻辑从未完成,因为我们没有得到响应。

Parse中有什么东西可以用来调试这样的请求吗?下面是我们正在使用的当前http客户端实现。注意:也从Square放入OkHttp并遇到完全相同的问题。

        // 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;

1 个答案:

答案 0 :(得分:0)

./batch的奇怪行为......

确保您没有错过解析错误响应。 IMO - 如果您没有密切关注http响应中实体的处理程序,有时可能会出现JSON解析错误或可能遗漏的内容....

我没有使用Parse batch api。我使用过多线程http客户端而没有看到你提到的流行的超时类型问题?

由于您使用REST,您应该能够在CURL客户端中包含一些测试调用,您可以使用CURL CLI开关进行检测以提供更多 - 调试...

由于您使用REST,您可以从批处理界面切换到多线程客户端(请参阅“线程”示例,请参阅org.apache处的“配置”示例...

狂野的猜测,但如果你分解你的批次可能背景更高数量的Http EXEC每个有更小的有效负载可能会更好的????

链接中的配置示例显示了如何按域配置池大小以及如何检测超时(conn timeout,req timeout等)。