首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Parse4J连接到托管的解析服务器?

如何通过Parse4J连接到托管的解析服务器?
EN

Stack Overflow用户
提问于 2017-03-30 07:15:51
回答 1查看 568关注 0票数 2

我希望能够使用Parse4J库(https://github.com/thiagolocatelli/parse4j/)连接到托管的Parse。我想使用https://parseapi.back4app.com作为API端点。它们提供了一个可靠的Parse托管解决方案。

代码:

代码语言:javascript
复制
import org.parse4j.Parse;
import org.parse4j.ParseException;
import org.parse4j.ParseObject;
import org.parse4j.ParseQuery;
import org.parse4j.callback.GetCallback;

/**
 * Created by Martin on 3/27/2017.
 */
public class Parse4JStarter {

    public static void main(String[] args) {

        Parse.initialize("applicationId","restAPIKey");

        if (Parse.getApplicationId() != null) {
            System.out.println("ParseConnection successful! " + Parse.getApplicationId());

            try {
                queryPost();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    private static void queryPost() throws Exception {
        ParseQuery<ParseObject> query = ParseQuery.getQuery("Post");
        query.getInBackground("4tD9TIIIhv", new GetCallback<ParseObject>() {
            public void done(ParseObject object, ParseException e) {
                if (e == null) {
                    System.out.println("ParseObject printed successfully! " + object);
                } else {
                    e.printStackTrace();
                }
            }
        });
    }
}

属地:

代码语言:javascript
复制
<dependencies>
        <dependency>
            <groupId>com.github.thiagolocatelli</groupId>
            <artifactId>parse4j</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>
    </dependencies>

我试图重写Maven存储库,方法是提供一个本地版本,即1.4-FIXED,并将ParseConstants.java中的API_ENDPOINT值更改为指向https://parseapi.back4app.com,这是我的数据库所在的地方:

代码语言:javascript
复制
public class ParseConstants {

    public static final String API_ENDPOINT = "https://parseapi.back4app.com";
    public static final String API_VERSION = "1";

    public static final String HEADER_CONTENT_TYPE = "Content-Type";
    public static final String HEADER_APPLICATION_ID = "X-Parse-Application-Id";
    public static final String HEADER_REST_API_KEY = "X-Parse-REST-API-Key";
    public static final String HEADER_MASTER_KEY = "X-Parse-Master-Key";
    public static final String HEADER_SESSION_TOKEN = "X-Parse-Session-Token";

    public static final String CONTENT_TYPE_JSON = "application/json";

    public static final String FIELD_OBJECT_ID = "objectId";
    public static final String FIELD_CREATED_AT = "createdAt";
    public static final String FIELD_UPDATED_AT = "updatedAt";
    public static final String FIELD_SESSION_TOKEN = "sessionToken";


    public static int MAX_PARSE_FILE_SIZE = 10485760;

}

我收到了一个ParseException:

代码语言:javascript
复制
ParseException [code=109, error=unauthorized]
    at org.parse4j.command.ParseResponse.getParseError(ParseResponse.java:122)
    at org.parse4j.command.ParseResponse.getException(ParseResponse.java:78)
    at org.parse4j.ParseQuery.find(ParseQuery.java:598)
    at org.parse4j.ParseQuery.find(ParseQuery.java:469)
    at org.parse4j.ParseQuery.get(ParseQuery.java:377)
    at org.parse4j.ParseQuery$GetInBackgroundThread.run(ParseQuery.java:452)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

这意味着我的连接没有被正确初始化:

代码语言:javascript
复制
   /**
   * You must call Parse.initialize before using the Parse library.
   */
  public static final int NOT_INITIALIZED = 109;

通过更深入地研究Parse4J库,我可能可以做更多的事情。然而,在这一点上,我迷路了。我能做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-30 08:11:05

感谢Parse4J的开发人员,我能够通过更新依赖于最新快照版本的1.5-SNAPSHOT来解决我的问题,然后更新我的初始化方法以包含包含自定义API端点的第三个参数。这在大约8个月前是可能的,但文档中没有提到使用最新版本,因为它还不是正式发布的版本。我用https://parseapi.back4app.com实现了这个功能。它们提供了一个可靠的Parse托管解决方案,但是您可以用自己的URI替换它。我想一个新的版本即将发布.

代码语言:javascript
复制
<dependencies>
        <dependency>
            <groupId>com.github.thiagolocatelli</groupId>
            <artifactId>parse4j</artifactId>
            <version>1.5-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>
    </dependencies>

初始化方法:

代码语言:javascript
复制
Parse.initialize(applicationId, restAPIKey, "https://parseapi.back4app.com");

参见这里的文档:https://github.com/thiagolocatelli/parse4j/commit/4113b422631c364488bc51152da8b071542e8159

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43110992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档