Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Build a Weather App (2015) Networking Building an HTTP Request

Having trouble doing what this question is asking, making new request, and chaining it to methods.

Having some issues chaining these methods.

I originally had

Request request = new Request().url(apiUrl).build();

That didn't work.

My code is attached. Greatly appreciate your help in this!

MovieActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MovieActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_movie);

        // Get some movie information!
        String apiUrl = "http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=xyz&q=hobbit";
        OkHttpClient client = new OkHttpClient();
        Request request = new Request().Builder();
        request.url(apiUrl).build();
    }
}

2 Answers

Seth Kroger
Seth Kroger
56,413 Points

Request has in inner class called Builder. Builders are helper classes that break down the construction of complex objects into smaller method calls and constructs the final object with the build() call at the end. By starting with "new Request()" you're constructing a new Request at the beginning instead of the Builder. So the first thing you want to do is create a new Request.Builder by calling "new Request.Builder()" then chain the methods to the .build() call from there

I hope this explanation helps.

I am not sure if it does, because I believe I did just that.

I actually solved it, I was over thinking the directions.

I was to type ...

new Request.Builder().url(apiUrl).build();