I am accessing an API, but when i debug the response it shows this message [Status=Moved Temporarily, StatusCode=302]. what should i do to access my required response.. my code is given below
public class WebServiceCall{
public String getResult{get;set;}
public PageReference submit() {
getResult=getData();
return null;
}
public String getData()
{
HttpRequest req= new HttpRequest();
Http http = new Http();
req.setMethod('GET');
String url = 'http://www.geocko.com/api/orders/?app_id=xxxxxxxxxxxxx';
req.setEndpoint(url);
HttpResponse res = http.send(req);
String json = res.getBody();
System.debug(res.getBody());
try {
JSONObject j = new JSONObject( json );
return parseJson(j);
} catch (JSONObject.JSONException e) {
return 'Error parsing JSON response from Web: '+e;
}
}
public String parseJson(JSONObject resp){
return resp.getString('type');
}
}
Best Answer
It has been a month since the original post, but hopefully this helps someone else out in the same situation. I handle a similar situation when logging into Site Minder protected pages. I use the code below to deal with sites that throw out an unknown amount of redirects.
It looks for a redirect HTTP response code and then grabs the location from the headers, and repeats the process until it gets a normal response or falls through without a proper response.
You could add some more checks for other status codes as well. Check here for the status codes if you're not familiar with them.
https://developer.mozilla.org/en-US/docs/HTTP/HTTP_response_codes