Как использовать инструмент перезаписи Чарльза только для определенных методов?

Я использую Charles' Rewrite Tool, чтобы заменить 200 ответов на 400, чтобы проверить неудачные вызовы API. Однако перезапись срабатывает по запросу Options. Я хотел бы, чтобы он срабатывал только для запросов Get или Post и разрешал запросы Options. Возможно ли это с помощью Чарльза?

Переписать экран


person garrettmaring    schedule 28.08.2018    source источник


Ответы (4)


Я думаю, что у Чарльза нет этой опции, что очень жаль, потому что кажется, что ее легко реализовать, и она открыла бы двери в мир API.

Я бы посоветовал вам обратиться к Карлу (автору и главному разработчику) за этой новой функцией по contact раздел сайта.

person Lluís Suñol    schedule 31.08.2018

Мы смогли обойти эту проблему, предполагая, что OPTIONS всегда будет возвращать пустое тело.

Приведенные ниже значения регулярного выражения будут соответствовать GET (поскольку у него есть тело ответа) и не будут соответствовать OPTIONS (поскольку у него нет тела ответа).

\{[\S\s]*\}

or

\[[\S\s]*\]

Переписать правило

person Austin    schedule 21.09.2018
comment
Привет, я не понимаю, что ты делаешь. Вы сказали, что хотите обойти метод OPTION и позволить методу POST, GET, PUT возвращать ошибку сервера с ошибкой 400. Нет места для обновления ответа до 400 на основе вашего обновления. - person newBike; 16.03.2020

У нас точно такая же потребность имитировать ответы API. Поскольку инструмент перезаписи не поддерживает эту функцию, мы установили точки останова на ответы, которые мы хотим имитировать, как только будет достигнута точка останова, мы изменим ответ на то, что мы хотим. Это работает, но далеко от идеала.

person Todd Hansberger    schedule 13.09.2018

К сожалению, у Чарльза нет этой функции для фильтрации того, какой запрос имеет определенный метод HTTP.

Это не прямой ответ, но вы можете получить его с помощью инструмента Scripting из Проксимен

скрипт для изменения кода состояния https

function onResponse(context, url, request, response) {

  // Update status Code
  response.statusCode = 500;

  // Done
  return response;
}

Вот фрагмент кода, который вы можете сделать с помощью JS Code.

Отказ от ответственности: я создатель Proxyman. Поскольку есть много людей, которые борются с этой проблемой, надеюсь, инструмент сценариев может вам помочь.

person Nghia Tran    schedule 29.08.2020