2015-05-16 12 views
5

(Edit: I zdaje się ten problem za pomocą HTTPoison „s uzyskać funkcjęJak mogę użyć protokołu httpotion za serwerem proxy?

HTTPoison.start 
HTTPoison.get!("httpbin.org/get", [], [{:proxy, {"proxy.mydomain.com", 8080}}]) 

jestem nowicjuszem za korzystanie eliksir Próbowałem przykładową aplikację na httpotion jako pierwszy krok

!...

iex> odpowiedź = HTTPotion.get "httpbin.org/get"

jednak nie mógł dotrzeć do miejsca behin d proxy.

iex(1)> res = HTTPotion.get "httpbin.org/get" 
** (HTTPotion.HTTPError) nxdomain 
    (httpotion) lib/httpotion.ex:195: HTTPotion.handle_response/1 

Bez proxy, z powodzeniem działa w ten sposób;

iex(1)> res = HTTPotion.get "httpbin.org/get" 
%HTTPotion.Response{body: "{\n \"args\": {}, \n \"headers\": {\n  \"Content-Length\": \"0\", \n \"Host\": \"httpbin.org\"\n }, \n \"origin\": \"191.238.84.51\", \n \"url\": \"http://httpbin.org/get\"\n}\n", 
headers: ["Access-Control-Allow-Credentials": "true",... 

Próbowałem ustawić parametry proxy, czytając ibrowse, od którego zależy http: jak;

req = HTTPotion.get("httpbin.org/get", [{:proxy_host, "proxy.mydomain.com"}, {:proxy_port, 8080}]) 

Ale wynik jest taki sam.

Jak ustawić parametry proxy dla httpotion? Czy jest jakaś biblioteka zastępcza na eliksirie do dostępu HTTP, która może obsługiwać serwery proxy?

Moje środowisko to Ubuntu 14.04.2, a zmienne środowiskowe (http_proxy, https_proxy, HTTP_PROXY i HTTPS_PROXY) są ustawione poprawnie.

+2

Może zapytaj w projekcie HTTPoison, jeśli nie możesz uzyskać odpowiedzi tutaj: https://github.com/edgurgel/httpoison –

+0

Dzięki, José. Zadam to pytanie na stronie projektu. Właśnie zacząłem uczyć się eliksiru, wciąż myląc nową składnię jak "atom zaczynający się od:". – HirofumiTamori

+0

@HirofumiTamori pamiętaj, aby opublikować odpowiedź na swoje pytanie, jeśli uda Ci się znaleźć rozwiązanie za pomocą narzędzia do śledzenia problemów httpoison :). – whatyouhide

Odpowiedz

8

Spójrz na httpoison tests: D

oto jak to zrobić żądanie GET z serwera proxy:

HTTPoison.get!("http://www.google.com", [], [{:proxy, "proxy.company.address:port"}]) 
+2

To są testy 'HTTPoison's', a nie' HTTPotion's' – JustMichael

2

ja właśnie zdobione ten sam czytając źródła, ale teraz zauważyć, że to udokumentowane w najnowszym README ...

Krótka wersja (od tej odpowiedzi pojawiła się wcześniej w wyszukiwarce Google niż README) jest konieczne przekazanie params bezpośrednio do ibrowse, możesz to zrobić za pomocą opcji: ibrowse, a następnie również zauważyć, ibrowse ogólnie t AKES postać wymienia

Tak, na przykład:

HTTPotion.get "httpbin.org/get", [ ibrowse: [ proxy_host: 'some.host', proxy_port: 8080 ] ] 

Uwaga, httpotion nie wydaje się wyjątki pułapki strasznie dobrze w to nie "!" wersje funkcji ... Nie użycie list char lub podobnych spowoduje wszystkie trudne do zrozumienia wyjątki ...

Powiązane problemy