Search Issue Tracker

Fixed in 2017.3.0f3

Fixed in 2017.1.X, 2017.2.X

Votes

5

Found in

2017.1.0f3

Issue ID

932312

Regression

Yes

[WWW][UnityWebRequest] InvalidOperationException when User-Agent header contains parenthesis

Networking

-

Steps to reproduce:
1. Open project
2. Enter play mode
3. Observe the console

Result:
InvalidOperationException: Header value contains invalid characters
UnityEngine.Networking.UnityWebRequest.SetRequestHeader (System.String name, System.String value) (at /Users/builduser/buildslave/unity/build/artifacts/generated/common/modules/UnityWebRequest/WebRequestBindings.gen.cs:479)

Reproduced on: 2017.1.0f3, 2017.2.0b2
Did not reproduce on: 5.5.4p1, 5.6.2p4

Note: Removing parenthesis "(" and ")" eliminates the error

Comments (6)

  1. pikachu007

    Mar 09, 2019 10:33

    Unity Application side:
    Uri.EscapeUriString("Your header content with spéci@l characters");

    Serveur side: PHP exemple:
    urldecode($encodedString);

  2. AlexKilowat

    Oct 02, 2017 10:48

    Fixed in 2017.1.1p3.

  3. Hosnkobf

    Aug 28, 2017 13:23

    Thanks EILIOMM,

    It seems to be really only the brackets... I first tried to escape it in different ways without success.
    In the end I just replaced the brackets and it works.

    [code]
    string Escape(string s)
    {
    s = s.Replace("(", "&#40");
    s = s.Replace(")", "&#41");
    return s;
    }
    [/code]

  4. emiliomm

    Aug 09, 2017 10:52

    I found a way to bypass the issue for those who need the header to work and are stuck with the 2017.x version.

    Simply replace the characters "(" for "&#40" and ")" for "&#41". These are the html escape characters and seem to work fine for me.

Add comment

Log in to post comment