Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   TAzureBlobService geht nicht mit Android (https://www.delphipraxis.net/197152-tazureblobservice-geht-nicht-mit-android.html)

Nathan 19. Jul 2018 10:26

TAzureBlobService geht nicht mit Android
 
Hallo,
Bin gerade dabei, mit Delphi, Daten im Azure BlobStorage Container abzulegen. Hat wunderbar unter Windows. Unter Android bekam ich immer folgendes Response:
Code:
<?xml version="1.0" encoding="utf-8"?>
<Error>
  <Code>AuthenticationFailed</Code>
  <Message>Server failed to authenticate the request.
    Make sure the value of Authorization header is formed correctly including the signature.'#012'
    RequestId:da3048cd-101e-00d0-35d2-1db77c000000'#012'Time:2018-07-17T13:34:42.8089900Z</Message>
  <AuthenticationErrorDetail>The Date header in the request is incorrect.</AuthenticationErrorDetail>
</Error>
Wie gesagt unter Windows überhaupt keine Probleme. Also alles bis runter auf unit System.Net.HttpClient.Android; Methode procedure TAndroidHTTPRequest.AddHeader(const AName, AValue: string); gedebuggert.
Dadrin wird jeder Value eines Header Parameters getrimmt. Hat zur folge, das der Header Parameter "x-ms-date" geändert wird und Azure die Authentifizierung verweigert. Konnte es mit Fiddler nachweisen und als ich die gleichen Änderungen mit Windows anstelle, ist auf dort kein Zugriff möglich.
Der HTTP Header unter Win32:

Win32
GET http://autocompez.blob.core.windows....ist&timeout=30 HTTP/1.1
Connection: Keep-Alive
Authorization: SharedKey ...
User-Agent: Embarcadero URI Client/1.0
x-ms-date: Wed, 18 Jul 2018 12:06:33 GMT
x-ms-version: 2014-02-14
Host: autocompez.blob.core.windows.net


Android:
GET http://autocompez.blob.core.windows....ist&timeout=30 HTTP/1.1
x-ms-date: Wed,18 Jul 2018 12:05:41 GMT
x-ms-version: 2014-02-14
User-Agent: Embarcadero URI Client/1.0
Authorization: SharedKey ...
Host: autocompez.blob.core.windows.net
Connection: Keep-Alive
Accept-Encoding: gzip

Der Unterschied liegt in einem einzigen Leerzeichen, nach dem Wochentag.
Code:
x-ms-date: Wed, 18 Jul 2018 12:06:33 GMT
x-ms-date: Wed,18 Jul 2018 12:05:41 GMT
Meine Frage jetzt, hat dies auch schon jemand gehabt und / oder warum werden die Values getrimmt?

TurboMagic 8. Sep 2018 13:40

AW: TAzureBlobService geht nicht mit Android
 
Bitte dieses Problem mal in Quality Portal von EMBT einstellen, samt deiner Debugging Ergebnisse. Die Report Nummer dann hier posten, damit wir es auch nachverfolgen können oder dafür stimmen können.

Nathan 10. Sep 2018 06:04

AW: TAzureBlobService geht nicht mit Android
 
Hallo
Hatte einen Mitarbeiter darauf angesetzt, im Quality von Embarcadero.
Verfolgbar unter: https://quality.embarcadero.com/browse/RSP-20905


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz