I am running the same code in two different environments and I am getting different results. I have the following code hitting the REST API exposed on StackExchange:
Http httpQuestions = new Http();
HttpRequest requestQuestions = new HttpRequest();
requestQuestions.setEndpoint('http://api.stackexchange.com/2.2/users/605/questions?order=desc&sort=activity&site=salesforce');
requestQuestions.setMethod('GET');
requestQuestions.setHeader('Content-Type', 'application/json');
HTTPResponse responseQuestions = httpQuestions.send(requestQuestions);
System.debug('Get Questions: ' + responseQuestions.getBody());
Basically, what this should do is call out to the API and return all of the questions I have asked (my user Id is 605). When I run this code in Execute Anonymous in Winter '14, the request returns a 200 response and I get the following from the debug statement (ran it through JSONPrettyPrint for readability):
15:56:49:374 USER_DEBUG [7]|DEBUG|Get Questions: {
"items": [
{
"tags": [
"pre-release"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 224,
"accepted_answer_id": 25486,
"answer_count": 2,
"score": 4,
"last_activity_date": 1391032089,
"creation_date": 1390247152,
"question_id": 24668,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/24668\/writing-apex-in-spring-14-prerelease-org",
"title": "Writing Apex in Spring '14 Prerelease Org"
},
{
"tags": [
"soql",
"lookup"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 110,
"accepted_answer_id": 25011,
"answer_count": 1,
"score": 4,
"last_activity_date": 1390542679,
"creation_date": 1390521475,
"question_id": 25001,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/25001\/nested-soql-query-on-object-w-lookup-to-same-object",
"title": "Nested SOQL Query On Object w\/ Lookup To Same Object"
},
{
"tags": [
"salesforce1-app"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 196,
"accepted_answer_id": 23865,
"answer_count": 2,
"score": 4,
"last_activity_date": 1389706625,
"creation_date": 1389274614,
"question_id": 23864,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/23864\/set-standard-objects-as-menu-item-in-salesforce1",
"title": "Set Standard Objects as Menu Item in Salesforce1?"
},
{
"tags": [
"lookup",
"page-layout",
"create-records"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 71,
"accepted_answer_id": 22462,
"answer_count": 1,
"score": 6,
"last_activity_date": 1387298696,
"creation_date": 1387298188,
"last_edit_date": 1387298510,
"question_id": 22460,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/22460\/modify-new-object-layout-through-lookup",
"title": "Modify "New" Object Layout through Lookup"
},
{
"tags": [
"soql",
"sosl"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 5567,
"accepted_answer_id": 9029,
"answer_count": 2,
"score": 16,
"last_activity_date": 1385919473,
"creation_date": 1362021485,
"question_id": 9028,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/9028\/soql-vs-sosl-which-one-to-use-and-when",
"title": "SOQL vs SOSL - Which one to use and when?"
},
{
"tags": [
"visualforce"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 3323,
"protected_date": 1382362080,
"accepted_answer_id": 8140,
"answer_count": 1,
"score": 38,
"last_activity_date": 1382351724,
"creation_date": 1360161554,
"last_edit_date": 1360249961,
"question_id": 8139,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/8139\/difference-between-the-multiple-messaging-options-in-visualforce",
"title": "Difference between the multiple messaging options in Visualforce?"
},
{
"tags": [
"leads",
"lead-conversion"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 213,
"accepted_answer_id": 17800,
"answer_count": 1,
"score": 6,
"last_activity_date": 1381175720,
"creation_date": 1381173961,
"question_id": 17799,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/17799\/multiple-contacts-per-lead-possible",
"title": "Multiple Contacts Per Lead - Possible?"
},
{
"tags": [
"ide"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 1702,
"protected_date": 1377220053,
"accepted_answer_id": 15659,
"answer_count": 2,
"score": 61,
"last_activity_date": 1379438764,
"creation_date": 1376944562,
"last_edit_date": 1376949857,
"question_id": 15654,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/15654\/force-com-ide-still-officially-supported",
"title": "Force.com IDE - Still Officially Supported?"
},
{
"tags": [
"apex",
"unit-test",
"batch",
"api-27"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 1624,
"accepted_answer_id": 8978,
"answer_count": 1,
"score": 7,
"last_activity_date": 1368082166,
"creation_date": 1361912702,
"last_edit_date": 1365153475,
"question_id": 8959,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/8959\/no-mass-mail-permission-error-from-unit-test-on-singlemailmessage",
"title": "NO_MASS_MAIL_PERMISSION Error from Unit Test on SingleMailMessage"
},
{
"tags": [
"developer-console",
"api-27"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 1144,
"protected_date": 1362776429,
"accepted_answer_id": 9191,
"answer_count": 1,
"score": 16,
"last_activity_date": 1365700479,
"creation_date": 1362156576,
"last_edit_date": 1362166843,
"question_id": 9131,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/9131\/developer-console-issues-in-chrome-spring-13",
"title": "Developer Console - Issues in Chrome Spring '13?"
},
{
"tags": [
"deployment",
"migration-tool"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 418,
"accepted_answer_id": 10187,
"answer_count": 3,
"score": 11,
"last_activity_date": 1364654401,
"creation_date": 1364565408,
"last_edit_date": 1364565843,
"question_id": 10170,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/10170\/deploy-to-production-cancel-deploy-after-test-failure",
"title": "Deploy to Production - Cancel Deploy After Test Failure"
},
{
"tags": [
"apex",
"approval-process"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 574,
"accepted_answer_id": 8152,
"answer_count": 2,
"score": 3,
"last_activity_date": 1363279254,
"creation_date": 1360170102,
"last_edit_date": 1360174891,
"question_id": 8150,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/8150\/programmatically-stopping-approval-process-email",
"title": "Programmatically Stopping Approval Process Email"
},
{
"tags": [
"ide"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 122,
"answer_count": 1,
"score": 1,
"last_activity_date": 1362633144,
"creation_date": 1362585799,
"question_id": 9278,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/9278\/force-com-ide-easy-push-of-single-file-through-single-key-combo",
"title": "Force.com IDE - Easy Push of Single File Through Single Key Combo?"
},
{
"tags": [
"apex",
"unit-test",
"developer-console"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 365,
"accepted_answer_id": 9151,
"answer_count": 2,
"score": 6,
"last_activity_date": 1362265094,
"creation_date": 1362162793,
"question_id": 9136,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/9136\/force-a-unit-test-to-run-immediately-inside-salesforce-web-ui",
"title": "Force a Unit Test to run immediately inside Salesforce Web UI?"
},
{
"tags": [
"deployment",
"migration-tool",
"package"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 535,
"accepted_answer_id": 9057,
"answer_count": 1,
"score": 6,
"last_activity_date": 1362061078,
"creation_date": 1362060569,
"question_id": 9056,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/9056\/sfretrieve-gets-a-file-but-sfdeploy-cant-find-it-for-the-deploy",
"title": "sf:retrieve gets a file, but sf:deploy can't find it for the deploy?"
},
{
"tags": [
"metadata-api",
"migration-tool"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 708,
"accepted_answer_id": 8791,
"answer_count": 1,
"score": 5,
"last_activity_date": 1361459880,
"creation_date": 1361457257,
"question_id": 8783,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/8783\/full-list-of-all-accessible-types-through-metadata-api",
"title": "Full List of All Accessible Types Through Metadata Api"
},
{
"tags": [
"site.com"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 353,
"bounty_amount": 50,
"accepted_answer_id": 8022,
"answer_count": 1,
"score": 7,
"last_activity_date": 1359983695,
"creation_date": 1358274012,
"last_edit_date": 1359745295,
"question_id": 7264,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/7264\/site-com-incorrectly-escaping-image-urls",
"title": "Site.com - Incorrectly Escaping Image URLs"
},
{
"tags": [
"deployment",
"migration-tool",
"migration"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 190,
"accepted_answer_id": 7982,
"answer_count": 1,
"score": 3,
"last_activity_date": 1359756293,
"creation_date": 1359745845,
"question_id": 7971,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/7971\/ant-migration-tool-order-of-package-xml-file-matter",
"title": "Ant Migration Tool - Order of Package.xml File Matter?"
},
{
"tags": [
"search"
],
"owner": {
"reputation": 9106,
"user_id": 605,
"user_type": "registered",
"accept_rate": 95,
"profile_image": "http:\/\/i.stack.imgur.com\/2xQqK.png?s=128&g=1",
"display_name": "Jesse Altman",
"link": "http:\/\/salesforce.stackexchange.com\/users\/605\/jesse-altman"
},
"is_answered": true,
"view_count": 603,
"accepted_answer_id": 7641,
"answer_count": 1,
"score": 1,
"last_activity_date": 1359042717,
"creation_date": 1358523859,
"question_id": 7417,
"link": "http:\/\/salesforce.stackexchange.com\/questions\/7417\/customizing-global-search",
"title": "Customizing Global Search"
}
],
"has_more": false,
"quota_max": 300,
"quota_remaining": 299
}
When I run that same exact code in Spring '14, I get a 403 error with the following from the debug statement:
19:06:24.142 (142925130)|USER_DEBUG|[12]|DEBUG|Get Questions: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The requested URL could not be retrieved</H2>
<HR noshade size="1px">
<P>
While trying to retrieve the URL:
<A HREF="http://api.stackexchange.com/2.2/users/605/questions?">http://api.stackexchange.com/2.2/users/605/questions?</A>
<P>
The following error was encountered:
<UL>
<LI>
<STRONG>
Access Denied.
</STRONG>
<P>
Access control configuration prevents your request from
being allowed at this time. Please contact your service provider if
you feel this is incorrect.
</UL>
<P>Your cache administrator is <A HREF="mailto:root">root</A>.
<BR clear="all">
<HR noshade size="1px">
<ADDRESS>
Generated Wed, 09 Apr 2014 23:06:24 GMT by proxy-sfm.net.salesforce.com (squid)
</ADDRESS>
</BODY></HTML>
In both scenarios, I have the Remote Site Details set up as:
The interesting thing about the Spring '14 scenario is that the HTML that gets returned from the 403 error indicates that http://api.stackexchange.com/2.2/users/605/questions?
is the URL that is getting called. It appears to be dropping the URL query parameters when making the call out. Has anyone seen anything else like this? Is it possible I am missing something really simple? I haven't done a ton with callouts in Apex to be honest, so I am not sure if I am just doing something wrong or if I found a bug.
Attribution to: Jesse Altman
Possible Suggestion/Solution #1
You can't call out from a pre-release org, since the security rules are different from our production/developer environments.
Attribution to: metadaddy
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/32358