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;
}