Hilfe
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Betreff: API 9.1.1 oder 4.1.2 Fehlermeldung forbidden status-code 403

Dick0355
Autor ★
4 Beiträge

Betreff:  API 9.1.1 oder 4.1.2  Fehlermeldung forbidden status-code 403

 

Hallo,

ich beziehe mich auf die Auflistung RestApi(April) 

Die http_requests sind von mir in C# RestSharp (Microsoft Visual Studio) nachgebaut worden.

 

Meine Anfragen 2.1 bis 2.5  und 3.1.1   3.1.2 erhalten postive Antwort_codes.

 

Zwei Anfragen, 9.1.1 Abruf Postbox  und 4.1.2  erzeugen nur die Meldung "forbidden 403".

diese Anfragen unter Postman gesendet, führen zu "keiner" Fehlermeldung.

danke für jede Hilfe.

 

Man muss ein Board asuwählen, aber alles was angeboten wird hat nichts mit API und Postman zu tun.

 

Aber vielleicht finden Sie einen anderen Eingang.

Mfg Brill

7 ANTWORTEN

dg2210
Legende
6.209 Beiträge

@Dick0355  schrieb:

Betreff:  API 9.1.1 oder 4.1.2  Fehlermeldung forbidden status-code 403

 

Zwei Anfragen, 9.1.1 Abruf Postbox  und 4.1.2  erzeugen nur die Meldung "forbidden 403".

diese Anfragen unter Postman gesendet, führen zu "keiner" Fehlermeldung.

danke für jede Hilfe.

Du hast wahrscheinlich in deiner eigenen Software irgendwelche header nicht gesetzt.

Vorschlag: Debugging einschalten und die requests, die deine Software erzeugt mit denen von postman vergleichen.

Dick0355
Autor ★
4 Beiträge

Danke @dg2210
Danke für die Antwort.

Restsharp Postman liefert 4.1.2 Abruf AccountBalances....

var client = new RestClient("https://api.comdirect.de/api/banking/v2/accounts/{{accountUUID}}/balances");
"
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer ...");
request.AddHeader("x-http-request-info", "{\"clientRequestId\":{\"sessionId\":\"...\",\"requestId\":\"376495893\"}}");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
"

mein Programmausschnitt:
" var client42 = new RestClient("https://api.comdirect.de/api/banking/v2/accounts/{{accountUUID}}/balances");
client42.Timeout = -1;
1 var request42 = new RestRequest(Method.GET);
2 request42.AddHeader("Accept", "application/json");
3 request42.AddHeader("Authorization", "Bearer " + Post21_Access_token);
4 request42.AddHeader("x-http-request-info", "{\"clientRequestId\":{\"sessionId\":\"...\",\"requestId\":\"192188407\"}}");
5 request42.AddHeader("Content-Type", "application/json");
6 request42.AddHeader("Cookie", Get22_Cookie);
7 IRestResponse response42 = client42.Execute(request42);
"

Inhalt in den Parameters request42.Parameters

2 {Accept=application/json}
3 {Authorization=Bearer ...}
4 {x-http-request-info={"clientRequestId":{"sessionId":"...","requestId":"192188407"}}}
5 {Content-Type=application/json}
6 {Cookie=50dca916.5c1ca16ad62b0}

Zeile 3 Post21_Access_token wird vorher schon mehrfach benutzt und stammt aus der Post2.1-OAuth2 Resource ......
Zeile 6 Get22_Cookie stammt aus dem Get2.2 Session-Status

Diese Abfrage führt zum Status 403 forbidden.

Während ich diese Erklärung erstellt habe, ist mir dieser Fehler aufgefallen,
dass der access_token aus dem Post2.5 einzusetzen ist.
Wenn ich in Zeile 3 den Post25_access_token einsetze, aendert sich der Code auf 404 not found.

Gruesse

 

Edit: Bitte niemals persönliche IDs (Access und Refresh Tokens, SessionIds usw.) hier in der Community posten! Viele Grüße Mario

dg2210
Legende
6.209 Beiträge

@Dick0355  schrieb:

Danke @dg2210
Danke für die Antwort.

Restsharp Postman liefert 4.1.2 Abruf AccountBalances....

var client = new RestClient("https://api.comdirect.de/api/banking/v2/accounts/{{accountUUID}}/balances");
"
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer ...");
request.AddHeader("x-http-request-info", "{\"clientRequestId\":{\"sessionId\":\"...\",\"requestId\":\"376495893\"}}");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
"

mein Programmausschnitt:
" var client42 = new RestClient("https://api.comdirect.de/api/banking/v2/accounts/{{accountUUID}}/balances");
client42.Timeout = -1;
1 var request42 = new RestRequest(Method.GET);
2 request42.AddHeader("Accept", "application/json");
3 request42.AddHeader("Authorization", "Bearer " + Post21_Access_token);
4 request42.AddHeader("x-http-request-info", "{\"clientRequestId\":{\"sessionId\":\"...\",\"requestId\":\"192188407\"}}");
5 request42.AddHeader("Content-Type", "application/json");
6 request42.AddHeader("Cookie", Get22_Cookie);
7 IRestResponse response42 = client42.Execute(request42);
"

Inhalt in den Parameters request42.Parameters

2 {Accept=application/json}
3 {Authorization=Bearer ...}
4 {x-http-request-info={"clientRequestId":{"sessionId":"...","requestId":"192188407"}}}
5 {Content-Type=application/json}
6 {Cookie=50dca916.5c1ca16ad62b0}

Zeile 3 Post21_Access_token wird vorher schon mehrfach benutzt und stammt aus der Post2.1-OAuth2 Resource ......
Zeile 6 Get22_Cookie stammt aus dem Get2.2 Session-Status

Diese Abfrage führt zum Status 403 forbidden.

Während ich diese Erklärung erstellt habe, ist mir dieser Fehler aufgefallen,
dass der access_token aus dem Post2.5 einzusetzen ist.
Wenn ich in Zeile 3 den Post25_access_token einsetze, aendert sich der Code auf 404 not found.

 


Der Programmausschnitt ist wenig hilfreich. Besser wäre es, zu vergleichen, was wirklich "über die Leitung geht".

 

Auf den ersten Blick sehe ich, daß du manchmal die Parameter mit Anführungszeichen, manchmal ohne solche verwendet. Absicht?

Dick0355
Autor ★
4 Beiträge

Danke für die Antwort:

 

Problem hat sich dadurch gelöst, dass ich den  access_token aus dem Post2.5 eingesetzt habe und nach einem Neustart und einem nochmaligen probieren ein positives Ergebnis hatte.

 

Jetzt habe ich ein neues Problem. Vielleicht kannst Du helfen?

Die PDF-daten, die ich beim 9.1.2 erhalte, ergeben nur ein leeres Blatt.

Muss man die Daten umcodieren?

 

dg2210
Legende
6.209 Beiträge

@Dick0355  schrieb:

Danke für die Antwort:

 

Problem hat sich dadurch gelöst, dass ich den  access_token aus dem Post2.5 eingesetzt habe und nach einem Neustart und einem nochmaligen probieren ein positives Ergebnis hatte.

 

Jetzt habe ich ein neues Problem. Vielleicht kannst Du helfen?

Die PDF-daten, die ich beim 9.1.2 erhalte, ergeben nur ein leeres Blatt.

Muss man die Daten umcodieren?

 


Nein, das PDF kommt im Klartext, das kannst du so, wie es geliefert wird abspeichern.

 

Bist du dir sicher, daß du tatsächlich ein PDF abrufst? Einige Postbox-Nachrichten (z.B. Hinweis auf Kapitalmassnahmen) sind nämlich kein PDF, sondern HTML und erscheinen nach Abruf wie ein leeres PDF Dokument.

 

 

Dick0355
Autor ★
4 Beiträge

Hallo, hier die ersten Zeilen der downloaddatei.

%PDF-1.4
%����
6 0 obj
<</Type/XObject
/Subtype/Image
/Width 2
/Height 2
/BitsPerComponent 1
/ImageMask true
/Filter[/FlateDecode]
/Decode[1 0]
/Length 7 0 R
>>
stream
x�c`  
endstream

dg2210
Legende
6.209 Beiträge

Sieht doch gut aus. Wie ist denn der Dateiname?