У меня есть следующая функция в одном модуле:
def create_chart(data) do
url = "https://quickchart.io/chart/create"
case HTTPoison.post!(
url,
data,
[
{"Content-Type", "application/json"}
],
hackney: [:insecure]
) do
{:ok, response} -> return_url(response)
{:error, reason} -> IO.inspect(reason)
end
end
В конце вызывается после того, как я соберу кучу данных из JIRA. Данные из JIRA поступают из этого метода в другой модуль. Этот метод вызывается много раз перед генерацией приведенного выше графика (см. Предыдущий код).
def get(url) do
{:ok, response} = HTTPoison.get(url, [auth()], hackney: [:insecure, basic_auth: auth()])
response.body
end
Когда я собираю данные и вызываю QuickChart, я получаю очень странное поведение при вызове API QuickChart:
** (MatchError) no match of right hand side value: {:error, {:unexpected_token, "<!DOCTYPE html><html lang=\"en\"><head><title>Oops, you've found a dead link. - JIRA</title>....</html>"}}
(km 0.1.0) lib/charts_api.ex:41: KM.Charts.Api.return_url/1
Я опустил ответ для краткости, но происходит то, что вместо вызова https://quickchart.io/chart/create
он вызывает http://myjirasubdomain.atlassian.net/chart/create
Когда я удаляю все вызовы в JIRA и жестко кодирую данные для QuickChart работает нормально. Таким образом, есть что-то в «предыдущих» вызовах JIRA, которое влияет на базу конечных точек при вызове QuickChart.
Я не уверен, почему это происходит. Любая помощь приветствуется.