2015-12-18 3 views
1

Итак, моя новая проблема в Elixir заключается в том, что я не могу установить явный домен при создании файлов cookie.Установить домен cookie в HTTPoison (Elixir)

В этом случае:

HTTPoison.get("httpbin.org/cookies", [{"User-agent", @userAgent}], hackney: [ 
      cookie: "cookie1=1 cookie2=2"] ) do  

Когда я создаю печенье будет хранить домен как .httpbin.org но фиктивную причину мне нужно установить значение домена, как httpbin.org (без предыдущей точки).

Я попытался также с:

HTTPoison.get("httpbin.org/cookies", [{"User-agent", @userAgent}], hackney: [ 
       cookie: "cookie1=1 domain=httpbin.org cookie2=2"] ) do 

Но, конечно же синтаксис ожидает домен как имя куки и httpbin.org как значение куки.

Спасибо!

ответ

0

По какой причине вы хотите удалить точку в начале? Это необязательно, и он должен соответствовать всему домену с/без точки.

How do browser cookie domains work?

Кроме того, я считаю, что атрибут domain будет для Set-Cookie заголовка возвращаемого из HTTP-сервера, а не запрос от клиента. Httpbin (https://httpbin.org/cookies/set) возвращает заголовок Set-Cookie, но он не указывает атрибут домена (только Path = /). Это было бы принято как .httpbin.org клиентами, такими как браузеры.

iex(25)> response = HTTPoison.get!("https://httpbin.org/cookies/set?k2=v2&k1=v1") 
%HTTPoison.Response{body: "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/cookies\">/cookies</a>. If not click the link.", 
headers: [{"Server", "nginx"}, {"Date", "Fri, 18 Dec 2015 23:49:46 GMT"}, 
    {"Content-Type", "text/html; charset=utf-8"}, {"Content-Length", "223"}, 
    {"Connection", "keep-alive"}, {"Location", "/cookies"}, 
    {"Set-Cookie", "k2=v2; Path=/"}, {"Set-Cookie", "k1=v1; Path=/"}, 
    {"Access-Control-Allow-Origin", "*"}, 
    {"Access-Control-Allow-Credentials", "true"}], status_code: 302} 
iex(26)> :hackney.cookies(response.headers) 
[{"k1", [{"k1", "v1"}, {"Path", "/"}]}, {"k2", [{"k2", "v2"}, {"Path", "/"}]}] 

Извините, если мне не хватает точки.