简体   繁体   中英

Check network connection in libGDX

I would like to check network connection with use of libGDX and tried to use code below.

HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url("https://api.vk.com/").build();

Net.HttpResponseListener httpResponseListener = new httpResponseListener() {
    public void handleHttpResponse (Net.HttpResponse httpResponse) {
        HttpStatus status = httpResponse.getStatus();
        if (status.getStatusCode() >= 200 && status.getStatusCode() < 300) {
            // it was successful
        } else {
            // do something else
        }
    }
}

Gdx.net.sendHttpRequest(httpRequest, httpResponseListener);

It has several errors, like Gdx.net doesn't have sendHttpRequest() function now. How should I correct this code?

Gdx.net has got sendHttpRequest() method - it seems that you are using not proper HttpRequest instance (why this Net... is starting with uppercase?)

A proper minimal example of how to use Gdx.net is beneath - I have also added a comments where it was necessary

    public class HttpManager implements HttpResponseListener 
    {   
        public HttpState state;
        private String result;
        private byte[] byteResult;

        HttpRequest request;

        public HttpManager()
        {
            request = new HttpRequest();
            request.setMethod(Net.HttpMethods.GET); //or POST
            request.setContent(""); //you can put here some PUT/GET content
            request.setUrl(url);
            Gdx.net.sendHttpRequest(request, this);
        }

        @Override
        public void handleHttpResponse(HttpResponse httpResponse) 
        {
            if( httpResponse.getStatus().getStatusCode() != 200 )
            {
                //ERROR
                float errorCode = httpResponse.getStatus().getStatusCode();
            }
            else
            {
                byte[] byteResult = httpResponse.getResult(); //you can also get result as String by using httpResponse.getResultAsString();
            }   
        }

        @Override
        public void failed(Throwable t) 
        {
            // TODO Auto-generated method stub  
        }

        @Override
        public void cancelled() 
        {
            // TODO Auto-generated method stub  
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM