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.900 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.900 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.900 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.900 Beiträge

Sieht doch gut aus. Wie ist denn der Dateiname?

Kurz zustimmen zu Cookies und vergleichbaren Webtechnologien
Um Ihnen insbesondere ein optimales Website-Erlebnis zu bieten, werden mit Ihrer Einwilligung Cookies und Webtechnologien zu Funktions-, Statistik-, Komfort- und Marketingzwecken sowie zur Darstellung personalisierter Inhalte verwendet. Im Einzelnen sind dies (Details unter nachfolgenden Links):

Adobe Analytics: Reichweitenmessung zur Verbesserung des Nutzungserlebnisses der Website sowie Optimierung der Marketingkampagnen.

Adform: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Adform geschaltet werden.

Adition: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Adition geschaltet werden.

comdirect-Surfertracking: Optimierung und Aussteuerung nutzerbezogener Werbung, die von comdirect auf Drittseiten geschaltet wird

Community Umfrage: Aussteuerung von Umfragen für Besucher der comdirect community.

DoubleClick Floodlight: Analyse des Nutzerverhaltens zur Optimierung des Nutzungserlebnisses.

Meta: Nachverfolgung von Verhalten nach Klick auf Meta-Werbeanzeigen und Personalisierung von Meta-Werbung.

Google Ads: Nachverfolgung von Verhalten nach Klick auf Google-Werbeanzeigen und Personalisierung von Google-Werbung.

Personalisierte Angebote: Aussteuerung und Optimierung von personalisierten Werbeflächen im persönlichen Bereich.

Smartadverser: Aussteuerung und Optimierung von Werbemitteln, die durch Kunden von Smartadverser geschaltet werden.

Wenn Sie mindestens 16 Jahre alt sind, können Sie durch Klicken auf „Alle akzeptieren“ bestätigen, dass wir diese Webtechnologien verwenden dürfen. Anderenfalls klicken Sie auf „Alle verweigern“. Durch Klicken auf „Einzeln einstellen“ können Sie jederzeit Ihre Einwilligung widerrufen oder Ihre Einwilligungseinstellungen anpassen.

Hier finden Sie weitere Informationen zum Datenschutz und unser Impressum.