2017-02-25 2 views
1

Ich versuche, die Google-Distanz-Matrix von Rest-Vorlage zugreifen. Ich habe einen gültigen API-Schlüssel und wenn ich einen Anruf vom Browser mache, scheint es gut zu funktionieren. Ich habe den Google Code in diesem link verwendet, um die Google-Signatur zu generieren. Wenn ich die digitale Unterschrift nehme und sie manuell an die URL angehängt habe, scheint das gut zu funktionieren.Google Distance Matrix Rest Vorlage Anruf mit digitale Unterschrift Generation zurück 403 verboten

Das Problem entsteht, wenn ich das durch Restvorlage übergebe. Der Anruf scheint zu funktionieren, aber ich bekomme eine 403 verboten. Ich habe ein bisschen nachgeschaut oder geforscht und es scheint so, als ob meine digitale Signatur für die jeweilige URL ungültig ist. Kann jemand klären, wie meine URL vom Browser gültig ist und warum sie von einem Rest-Vorlagenanruf ungültig ist?

+0

Wissen Sie, dass die digitale Signatur sehr spezifisch für die URL ist? – Coder

Antwort

1

Wenn Sie eine URL an die Rest-Vorlage übergeben, wird es meist in eine encoded URL konvertieren, die die gleiche digitale Signatur tragen wird. Da sich diese URL jedoch von der URL unterscheidet, für die Sie eine digitale Signatur erstellt haben, wird diese Signatur für die codierte URL ungültig.

Anstatt den Rest Vorlage Anruf machen, die URL macht verwenden URI. URIs werden nicht von der Rest-Vorlage codiert und Sie können Ihre digitale Signatur mit der entsprechenden URI validieren.

Lassen Sie mich wissen, wenn Sie weitere Erläuterungen benötigen !!