### Function

# Soup uri_copy

since: 3.0

#### Declaration [src]

    GUri*
    soup_uri_copy (
      GUri* uri,
      SoupURIComponent first_component,
      ...
    )

#### Description [src]

As of 3.4.0 this will detect the default ports of HTTP(s) and WS(S) URIs when copying and set it to the default port of the new scheme. So for example copying `http://localhost:80` while changing the scheme to https will result in `https://localhost:443`.

Return a copy of `uri` with the given components updated.

Available since: 3.0

This function is not directly available to language bindings.

#### Parameters

`uri`

  Type: `GUri`

  The `GUri` to copy.

  The data is owned by the caller of the function.

`first_component`

  Type: `SoupURIComponent`

  First `SoupURIComponent` to update.

`...`

  Type: ``

  Value of `first_component` followed by additional components and values, terminated by `SOUP_URI_NONE`.

#### Return value

Type: `GUri`

A new `GUri`.

The caller of the function takes ownership of the data, and is responsible for freeing it.