我正嘗試從Salesforce通過oauth獲取我的應用程序中的所有聯繫人。我得到遠程服務器返回錯誤:(400)錯誤的請求。試圖通過我的回調頁面上的API令牌網址獲取訪問令牌。甚至當我複製URL並直接粘貼到URL時,它會給我提供正確的數據。但無法獲得Access令牌。(400)Bad Request:獲取Salesforce的AccessToken
我正在使用下面的方法獲取訪問令牌。請專家建議我在哪裏做錯了。 Google和LinkedIn也採用相同的方法。
public async Task<TokenResponse> GetAccessToken(string code,string tokenUrl,string consumerKey,string consumerSecretKey,string redirecturl)
{
string responseFromServer = "";
var webRequest = WebRequest.Create(tokenUrl);
const string queryStringFormat = @"code={0}&client_id={1}&client_secret={2}&redirect_uri={3}&grant_type=authorization_code";
string contents = string.Format(queryStringFormat
, code
, consumerKey
, consumerSecretKey
, redirecturl);
webRequest.Method = "POST";
byte[] postcontentsArray = Encoding.UTF8.GetBytes(contents);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = postcontentsArray.Length;
using (Stream requestStream = webRequest.GetRequestStream())
{
requestStream.Write(postcontentsArray, 0, postcontentsArray.Length);
requestStream.Close();
WebResponse response = webRequest.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
using (StreamReader reader = new StreamReader(responseStream))
{
responseFromServer = reader.ReadToEnd();
reader.Close();
responseStream.Close();
response.Close();
}
}
}
}
return JsonConvert.DeserializeObject<TokenResponse>(responseFromServer);
}
請幫我解決這個問題。
什麼是HTTP響應的主體?這通常會解釋錯誤。 – smarx
你能澄清你的意思嗎?「甚至當我複製URL並直接粘貼到URL時,它會給我正確的數據」? – Crowcoder
調試時我得到的URL來獲取響應。我有複製該URL並直接粘貼到瀏覽器上,它顯示正確的XML與訪問令牌。但在代碼中給出錯誤。 – Vijjendra