You need to sign in to do that
Don't have an account?
星融 潘 6
How to use cookies in Apex?
Backgroud: I need access SAP from salesforce. SAP server is in company intranet. Salesforce cloud is in outer net.
There is a gateway between SAP server and Salesforce cloud.
So first,I need a http request to login gateway with company's username and password. The the gateway will respones 3 cookies.
I should include these 3 cookies when I access the sap SOAP webservice.
I'm able to access SAP SOAP webservice in .Net as below.
1 In Apex, how to use cookies?
2 how to set AllowAutoRedirect = false? If Redirect,I can't get respones with cookies.
3 When use SOAP in Apex,is there a way to set cookies and credential.
There is a gateway between SAP server and Salesforce cloud.
So first,I need a http request to login gateway with company's username and password. The the gateway will respones 3 cookies.
I should include these 3 cookies when I access the sap SOAP webservice.
I'm able to access SAP SOAP webservice in .Net as below.
//Creat request to login gateway System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create("gateway/login"); String PostString = "user=myusername&password=mypassword&btn_login=Logn-On&idpid=at_hp"; System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); byte[] buffer = encoding.GetBytes(PostString); request.AllowAutoRedirect = false; request.ContentType = "application/x-www-form-urlencoded"; request.Method = "POST"; request.CookieContainer = new CookieContainer(); Stream reqstr = request.GetRequestStream(); reqstr.Write(buffer,0,buffer.Length); reqstr.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //get the respones cookies CookieCollection mycookies = response.Cookies; // Create sap SOAP webservice Z_WEBSERVICESService SAPWSDL = new Z_WEBSERVICESService(); // use the cookies SAPWSDL.CookieContainer = new CookieContainer(); SAPWSDL.CookieContainer.Add(mycookies[0]); SAPWSDL.CookieContainer.Add(mycookies[1]); SAPWSDL.CookieContainer.Add(mycookies[2]); //set the credential System.Net.NetworkCredential cred = new System.Net.NetworkCredential(); cred.UserName = "SAPusername"; cred.Password = "SAPpassword"; SAPWSDL.Credentials = cred; //access SAP webservice. string xx = SAPWSDL.Z_WEBSERVICES();I have some qustion about how to convert this code to apex.
1 In Apex, how to use cookies?
2 how to set AllowAutoRedirect = false? If Redirect,I can't get respones with cookies.
3 When use SOAP in Apex,is there a way to set cookies and credential.
http://developer.force.com/cookbook/recipe/storing-form-field-values-with-the-apex-cookie-class
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_sites_cookie.htm
http://salesforce.stackexchange.com/questions/4894/how-is-a-cookie-constructed