# How do I get multiple headers with the same name in router rhai script?

**URL:** <https://community.apollographql.com/t/how-do-i-get-multiple-headers-with-the-same-name-in-router-rhai-script/5652>\
**Category:** Router\
**Tags:** router, rhai\
**Created:** [February 6, 2023, 10:01pm UTC](https://community.apollographql.com/t/how-do-i-get-multiple-headers-with-the-same-name-in-router-rhai-script/5652 "2023-02-06T22:01:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dulguun\_Otgon](https://sea1.discourse-cdn.com/flex019/user_avatar/community.apollographql.com/dulguun_otgon/32/4069_2.png) [@Dulguun\_Otgon](https://community.apollographql.com/u/Dulguun_Otgon)\
**Post date:** [February 6, 2023, 10:01pm UTC](https://community.apollographql.com/t/how-do-i-get-multiple-headers-with-the-same-name-in-router-rhai-script/5652/1 "2023-02-06T22:01:50Z")

</div>

I tried `response.headers["set-cookie"]` but it only returns one value. It seems to be calling `http::header::map::HeaderMap::get`. How do I make it call `http::header::map::HeaderMap::get_all`?

Full code:

```rhai
fn subgraph_service(service, subgraph) {
    let store_cookies_from_subgraphs = |response| {
        if response.headers["set-cookie"] != () {
            if response.context["set_cookie_headers"] == () {
                response.context.set_cookie_headers = [];
            }

            response.context.set_cookie_headers += response.headers["set-cookie"];
        }        
    };
    service.map_response(store_cookies_from_subgraphs);
}

```

---

<div class="post-metadata">

**Author:** ![dylan](https://sea1.discourse-cdn.com/flex019/user_avatar/community.apollographql.com/dylan/32/6009_2.png) [@dylan](https://community.apollographql.com/u/dylan)\
**Post date:** [February 7, 2023, 5:41pm UTC](https://community.apollographql.com/t/how-do-i-get-multiple-headers-with-the-same-name-in-router-rhai-script/5652/2 "2023-02-07T17:41:11Z")

</div>

It looks like [from these docs](https://www.apollographql.com/docs/router/customizations/rhai-api#headers-with-multiple-values) that you want the `values()` method, so like `request.headers.values("set-cookie")`

---

<div class="post-metadata">

**Author:** ![Dulguun\_Otgon](https://sea1.discourse-cdn.com/flex019/user_avatar/community.apollographql.com/dulguun_otgon/32/4069_2.png) [@Dulguun\_Otgon](https://community.apollographql.com/u/Dulguun_Otgon)\
**Post date:** [February 8, 2023, 5:32am UTC](https://community.apollographql.com/t/how-do-i-get-multiple-headers-with-the-same-name-in-router-rhai-script/5652/3 "2023-02-08T05:32:05Z")

</div>

Thanks.

I think I’ve found a better rhai script for passing `set-cookie` headers.

```plaintext
fn supergraph_service(service) {
  let add_cookies_to_response = |response| {
    if response.context["set_cookie_headers"] == () || response.context["set_cookie_headers"].is_empty() {
      return;
    }
    response.headers["set-cookie"] = response.context["set_cookie_headers"];
  };

  service.map_response(add_cookies_to_response);
}

fn subgraph_service(service, subgraph) {
    let store_cookies_from_subgraphs = |response| {
      if response.headers.values("set-cookie")?.is_empty() { return; }
      response.context.set_cookie_headers = response.headers.values("set-cookie");
    };

    service.map_response(store_cookies_from_subgraphs);
}

```
