package com.soundcloud.api.examples;
import com.soundcloud.api.ApiWrapper;
import com.soundcloud.api.Http;
import com.soundcloud.api.Request;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import java.io.File;
/**
* Access a protected resource from the server. This needs a prepared (serialized) API
* wrapper instance (create one with CreateWrapper).
*
* @see CreateWrapper
*/
public final class GetResource {
public static void main(String[] args) throws Exception {
final File wrapperFile = CreateWrapper.WRAPPER_SER;
if (args.length == 0) {
System.err.println("GetResource resource");
System.exit(1);
} else if (!wrapperFile.exists()) {
System.err.println("\nThe serialised wrapper (" + wrapperFile + ") does not exist.\n" +
"Run CreateWrapper first to create it.");
System.exit(1);
} else {
final ApiWrapper wrapper = ApiWrapper.fromFile(wrapperFile);
final Request resource = Request.to(args[0]);
System.out.println("GET " + resource);
try {
HttpResponse resp = wrapper.get(resource);
if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
System.out.println("\n" + Http.formatJSON(Http.getString(resp)));
} else {
System.err.println("Invalid status received: " + resp.getStatusLine());
}
} finally {
// serialise wrapper state again (token might have been refreshed)
wrapper.toFile(wrapperFile);
}
}
}
}