C# - REST-API-Aufrufen Arbeiten Briefträger, NICHT im Code

Habe ich einige bestehende code, der bei der Arbeit war und alle-von-a-plötzliche beenden.

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 bin jetzt immer ein 500 Internal Server Error wo vor dieser Arbeit war sauber.

Wenn ich versuche zu Debuggen über Briefträger, gebe ich die URL direkt und es funktioniert gut. Sogar, wenn ich ein stop in den code, und verwenden Sie die exakt gleiche URL, die dann nicht vom code aus, funktioniert es in Briefträger, aber nicht in C#.

Sich der Postbote, ich bekomme eine ordentliche...

{
  "access_token": "XXXXXX",
  "instance_url": "https://xxx.cloudforce.com",
  "id": "https://login.salesforce.com/id/XXXXXX",
  "token_type": "Bearer",
  "issued_at": "XXXXXX",
  "signature": "XXXXXX"
}

Zu verdeutlichen, habe ich versucht, eine GET Anfrage statt POST und ich erhalte die folgende Antwort (in Postman):

{
  "error": "invalid_request",
  "error_description": "must use HTTP POST"
}

Irgendwelche Ideen hier?

  • sind Sie sicher, dass Methode geben sollte 'POST' ?
  • ja, das ist, was ich im Postman zu BEKOMMEN... funktioniert NICHT.
  • was ist Anfrage.contentType auf Briefträger Erfolg Fall?
  • funktioniert mit jedem beliebigen content-type-in Postman. form-data , x-www-form-urlencoded, raw oder binary
InformationsquelleAutor gotmike | 2017-03-07
Schreibe einen Kommentar