Ich habe einige vorhandenen Code, der funktionierte und plötzlich beendet wurde.C# REST API Call - Arbeiten in Postman, nicht in Code
ich kann nicht herausfinden, warum ...
Hier ist mein Code:
public static string RequestToken(string u, string pw)
{
string result = string.Empty;
string strUrl = "https://xxx.cloudforce.com/services/oauth2/token?grant_type=password&client_id=XXXX&client_secret=XXXX&username=" + u + "&password=" + pw;
HttpWebRequest tokenRequest = WebRequest.Create(strUrl) as HttpWebRequest;
Debug.Print(strUrl);
tokenRequest.Method = "POST";
try
{
using (HttpWebResponse tokenResponse = tokenRequest.GetResponse() as HttpWebResponse)
{
if (tokenResponse.StatusCode != HttpStatusCode.OK)
throw new Exception(String.Format(
"Server error (HTTP {0}: {1}).",
tokenResponse.StatusCode,
tokenResponse.StatusDescription));
DataContractJsonSerializer jsonSerializer2 =
new DataContractJsonSerializer(typeof(ResponseAuthentication));
object objTokenResponse = jsonSerializer2.ReadObject(tokenResponse.GetResponseStream());
ResponseAuthentication jsonResponseAuthentication = objTokenResponse as ResponseAuthentication;
result = jsonResponseAuthentication.strAccessToken;
}
}
catch (Exception ex)
{
Debug.Print(ex.InnerException.ToString());
}
return result;
}
ich jetzt immer ein 500 Internal Server Error
wo vorher sauber gearbeitet hat.
Wenn ich versuche, mit Postman debuggen, übergebe ich die URL direkt und es funktioniert gut. Selbst wenn ich im Code stoppe und die exakt gleiche URL verwende, die dann innerhalb des Codes fehlschlägt, funktioniert sie in Postman, aber nicht in C#.
Aus Postman, erhalte ich eine geordnete ...
{
"access_token": "XXXXXX",
"instance_url": "https://xxx.cloudforce.com",
"id": "https://login.salesforce.com/id/XXXXXX",
"token_type": "Bearer",
"issued_at": "XXXXXX",
"signature": "XXXXXX"
}
Um zu klären, ich habe versucht, eine GET
Anfrage statt POST
und ich erhalten die folgende Antwort (in Postman):
{
"error": "invalid_request",
"error_description": "must use HTTP POST"
}
Irgendwelche Ideen hier?
Sind Sie sicher, Methodentyp sollte "POST" sein? – levent
@levent - Ja, das ist es, was ich auch in Postman verwende ... GET funktioniert NICHT. – gotmike
Was ist request.contentType beim Postman-Erfolgsfall? – levent