HTTPoison использует неверный базовый URL при вызове нескольких конечных точек из разных доменов - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть следующая функция в одном модуле:

  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&#39;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.

Я не уверен, почему это происходит. Любая помощь приветствуется.

...