Example usage for com.badlogic.gdx.net HttpRequestBuilder newRequest

List of usage examples for com.badlogic.gdx.net HttpRequestBuilder newRequest

Introduction

In this page you can find the example usage for com.badlogic.gdx.net HttpRequestBuilder newRequest.

Prototype

public HttpRequestBuilder newRequest() 

Source Link

Document

Initializes the builder and sets it up to build a new HttpRequest .

Usage

From source file:com.trgk.touchwave.menuscene.RankingLoadScene.java

License:Open Source License

@Override
public void act(float dt) {
    super.act(dt);

    final TGWindow rankingWindow = parent.rankingWindow;
    final FBService fb = FBService.getInstance();
    final GameLogger logger = GameLogger.getInstance();

    // Get user permission
    if (currentState == -1) {
        currentState = 0;//ww  w  .  java 2  s . c  o  m
        if (!logger.notifiedRankingRealName) {
            getSceneManager().setCurrentScene(new FBAlertScene(this));
            logger.notifiedRankingRealName = true;
            logger.saveGameLog();
            return;
        }
    }

    // Get user ID
    if (currentState == 0) {
        if (logger.maxScore == -1)
            currentState = 6;
        else {
            if (fb.isLogonRead())
                currentState = 2;
            else {
                fb.loginRead();
                currentState = 1;
            }
        }
    }

    // Wait for fb read login
    if (currentState == 1) {
        if (!fb.isBusy()) {
            if (fb.getLastActionResult() != FBService.Result.SUCCESS) {
                postErrorMsg("?? ??  .", 0);
                currentState = 6; // Skip user status
            } else
                currentState = 2;
        }
    }

    // Post user data
    if (currentState == 2) {
        String reqURL = serverDomain + "ranking/";
        HttpRequestBuilder requestBuilder = new HttpRequestBuilder();

        JsonValue requestBodyJson = new JsonValue(JsonValue.ValueType.object);

        JsonValue fbIDValue = new JsonValue(fb.userID);
        JsonValue fbNicknameValue = new JsonValue(fb.username);
        JsonValue maxScoreValue = new JsonValue(GameLogger.getInstance().maxScore);
        JsonValue accessToken = new JsonValue(fb.getAccessToken());

        fbIDValue.setName("fbID");
        fbNicknameValue.setName("fbNickname");
        maxScoreValue.setName("maxScore");
        accessToken.setName("accessToken");

        requestBodyJson.child = fbIDValue;
        fbIDValue.setNext(fbNicknameValue);
        fbNicknameValue.setNext(maxScoreValue);
        maxScoreValue.setNext(accessToken);

        String requestBody = requestBodyJson.toJson(JsonWriter.OutputType.json);

        final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.PUT).url(reqURL)
                .header(HttpRequestHeader.ContentType, "application/json").content(requestBody).build();
        currentState = 3; // Wait for http request to complete

        Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() {
            @Override
            public void handleHttpResponse(Net.HttpResponse httpResponse) {
                currentState = 4;
            }

            @Override
            public void failed(Throwable t) {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }

            @Override
            public void cancelled() {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }
        });
    }

    // Get user ranking
    if (currentState == 4) {
        String reqURL = String.format(Locale.ENGLISH, serverDomain + "ranking/%d", fb.userID);
        HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
        final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url(reqURL)
                .build();
        currentState = 5;
        Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() {
            @Override
            public void handleHttpResponse(Net.HttpResponse httpResponse) {
                JsonReader reader = new JsonReader();
                JsonValue result = reader.parse(httpResponse.getResultAsString());

                if (result.isObject() && result.get("userRank") != null) {
                    int userRank = result.getInt("userRank");
                    int maxScore = result.getInt("maxScore");
                    rankingWindow.addActor(
                            new RankingScene.RankingEntry(userRank, fb.username, maxScore, Color.BLUE, 0));
                    currentState = 6;
                } else {
                    postErrorMsg(" ?? .", 0);
                    currentState = 6;
                }
            }

            @Override
            public void failed(Throwable t) {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }

            @Override
            public void cancelled() {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }
        });
    }

    // Get total ranking
    if (currentState == 6) {
        String reqURL = serverDomain + "ranking/";
        HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
        final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url(reqURL)
                .build();
        currentState = 7;

        Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() {
            @Override
            public void handleHttpResponse(Net.HttpResponse httpResponse) {
                JsonReader reader = new JsonReader();
                JsonValue result = reader.parse(httpResponse.getResultAsString());

                if (result.isObject() && result.get("rankings") != null) {
                    JsonValue rankingArray = result.get("rankings");
                    JsonValue rankingEntry = rankingArray.child;
                    int entryID = 1;
                    while (rankingEntry != null) {
                        rankingWindow.addActor(
                                new RankingScene.RankingEntry(entryID, rankingEntry.getString("fbNickname"),
                                        rankingEntry.getInt("maxScore"), Color.BLACK, entryID));
                        rankingEntry = rankingEntry.next;
                        entryID++;

                        if (entryID == 20)
                            break;
                    }
                    currentState = 8;
                } else {
                    postErrorMsg("? ? .", 1);
                    currentState = 8;
                }
            }

            @Override
            public void failed(Throwable t) {
                postErrorMsg("? ? .", 1);
                currentState = 8;
            }

            @Override
            public void cancelled() {
                postErrorMsg("? ? .", 1);
                currentState = 8;
            }
        });
    }

    if (currentState == 8) {
        fb.logout();
        gotoParent();
        currentState = 9;
    }

}

From source file:de.tomgrill.gdxtwitter.core.TwitterAPI.java

License:Apache License

private void sendRequest(final TwitterRequest twitterRequest, final TwitterResponseListener listener) {

    HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
    HttpRequest httpRequest = requestBuilder.newRequest().method(twitterRequest.getRequestType().name())
            .url(twitterRequest.getUrl()).build();

    // System.out.println(twitterRequest.build().getHeader());
    twitterRequest.build();//from  w  ww .  j  a v a  2s  .c  o  m

    httpRequest.setHeader("Authorization", twitterRequest.getHeader());
    httpRequest.setContent(twitterRequest.getData());
    Gdx.net.sendHttpRequest(httpRequest, new HttpResponseListener() {

        @Override
        public void handleHttpResponse(HttpResponse httpResponse) {
            if (httpResponse.getStatus().getStatusCode() == 200) {
                listener.success(httpResponse.getResultAsString());
            } else {
                listener.apiError(httpResponse.getStatus(), httpResponse.getResultAsString());
            }
        }

        @Override
        public void failed(Throwable t) {
            listener.httpError(t);

        }

        @Override
        public void cancelled() {
            listener.cancelled();
        }
    });

}