2016-06-19 14 views
0

login用にsoap APIを使用してsalesforceからセッションIDを取得したいとします。以下はリクエストに対する私のコードですが、html応答としてsalesforceログインページを取得しています。 考えていますか?ログイン用SalesforceのSOAP API

public static string Authentication() 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(SalesForce_authenticationAPI); 
     request.ContentType = "text/xml; charset=UTF-8"; 
     request.Headers.Add("SOAPAction", @"\"); 
     request.Method = "POST"; 

     byte[] bytes; 
     bytes = System.Text.Encoding.ASCII.GetBytes(CreateSoapEnvelope().InnerXml); 
     request.ContentLength = bytes.Length;   

     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(bytes, 0, bytes.Length); 

     requestStream.Close(); 

     HttpWebResponse response; 
     response = (HttpWebResponse)request.GetResponse(); 
     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      Stream responseStream = response.GetResponseStream(); 
      string responseStr = new StreamReader(responseStream).ReadToEnd(); 
      //return only sessionId 
      return responseStr; 
     } 
     return null; 

    } 


private static XmlDocument CreateSoapEnvelope() 
    { 
     XmlDocument soapEnvelop = new XmlDocument(); 
     soapEnvelop.LoadXml(@"<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/' xmlns:x='http://www.w3.org/2001/XMLSchema-instance' xmlns='urn:partner.soap.sforce.com'><s:Body><login><username>[email protected]</username><password>*********</password></login></s:Body></s:Envelope>"); 
     return soapEnvelop; 

    } 

答えて

関連する問題