Кодирование подписи Amazon ec2 API версии 2 c#

Умный снайпер в первом наборе комментариев был очень забавным, но это действительно зависит от того, что ты пытаешься сделать. Если у вас еще нет правильной библиотеки, то 3 строки кода (как в ответе Д. Вроблевского) идеальны. OTOH, если у вас уже есть библиотека apache.commons (как и большинство крупных проектов), то ответ Амара будет короче. ОК, вам может потребоваться десять минут, чтобы получить библиотеку и установить ее правильно (меньше, чем один, если вы знаете, что делаете). Но часы тикают, поэтому у вас может не быть свободного времени. У Ярека Пшигодзки была интересная оговорка: «Если вам не нужны вложенные исключения».

Но что, если мне нужно нужны полные трассы стека, вложенные и все? В этом случае секрет заключается в использовании apache.common getFullStackTrace (см. http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/exception/ ExceptionUtils.html # getFullStackTrace% 28java.lang.Throwable% 29 )

Это спасло мой бекон. Спасибо, Амар, за подсказку!

6
задан Dermot 17 February 2012 в 05:48
поделиться

1 ответ

Хорошо, я разобрался .... Кодировка UrlEncoding в классе HttpUtility не соответствует схеме кодирования Amazon .... grrr (в частности, шестнадцатеричное значение после% в. NET в нижнем, а не в верхнем регистре)

b. URL-адрес кодирует имя параметра и значения в соответствии со следующими правилами:

  • Не URL-адрес кодирует любой из незарезервированные символы, которые RFC 3986 определяет. Эти безоговорочные персонажи - это AZ, az, 0-9, дефис (-), подчеркивание (_), точка (.) и тильда (~).
  • Процент кодирует все остальные символы с% XY, где X и Y шестнадцатеричные символы 0–9 и заглавные буквы AF .

  • Процент кодирует расширенный UTF-8 символы в виде% XY% ZA ....

  • Процент кодирует пробел символ как% 20 (а не +, как общие схемы кодирования делают).

Итак, после написания быстрого метода, который кодирует эту схему, он работает нормально.

7
ответ дан 17 December 2019 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: