Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions dotnet/src/dotnetframework/GxClasses/Domain/GxHttpClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,7 @@ void setHeaders(HttpRequestMessage request, CookieContainer cookies)
contentHeaders.ContentType = MediaTypeHeaderValue.Parse(_headers[i].ToString());
break;
case "ACCEPT":
headers.Add("Accept", _headers[i]);
AddHeader(headers, "Accept", _headers[i]);
break;
case "EXPECT":
if (string.IsNullOrEmpty(_headers[i]))
Expand All @@ -535,7 +535,7 @@ void setHeaders(HttpRequestMessage request, CookieContainer cookies)
headers.Referrer = new Uri(_headers[i]);
break;
case "USER-AGENT":
headers.Add("User-Agent", _headers[i]);
AddHeader(headers, "User-Agent", _headers[i]);
break;
case "DATE":
DateTime value;
Expand All @@ -545,7 +545,7 @@ void setHeaders(HttpRequestMessage request, CookieContainer cookies)
}
else
{
headers.Add(currHeader, _headers[i]);
AddHeader(headers, currHeader, _headers[i]);
}
break;
case "COOKIE":
Expand All @@ -564,7 +564,7 @@ void setHeaders(HttpRequestMessage request, CookieContainer cookies)
request.Headers.IfModifiedSince = dt;
break;
default:
headers.Add(currHeader, _headers[i]);
AddHeader(headers, currHeader, _headers[i]);
break;
}
}
Expand All @@ -578,6 +578,10 @@ void setHeaders(HttpRequestMessage request, CookieContainer cookies)
}
InferContentType(contentType, request);
}
void AddHeader(HttpRequestHeaders headers, string headerName, string headerValue)
{
headers.TryAddWithoutValidation(headerName, headerValue);
}
void InferContentType(string contentType, HttpRequestMessage req)
{
if (string.IsNullOrEmpty(contentType) && _formVars.Count > 0)
Expand Down
2 changes: 2 additions & 0 deletions dotnet/test/DotNetCoreUnitTest/DotNetCoreUnitTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="..\DotNetUnitTest\ConfigMappings\ConfigTest.cs" Link="ConfigMappings\ConfigTest.cs" />
<Compile Include="..\DotNetUnitTest\Domain\GxHttpClientTest.cs" Link="Domain\GxHttpClientTest.cs" />
<Compile Include="..\DotNetUnitTest\FileIO\DfrgFunctions.cs" Link="FileIO\DfrgFunctions.cs" />
<Compile Include="..\DotNetUnitTest\FileIO\FileSystemTest.cs" Link="FileIO\FileSystemTest.cs" />
<Compile Include="..\DotNetUnitTest\FileIO\Xslt.cs" Link="FileIO\Xslt.cs" />
Expand Down Expand Up @@ -153,6 +154,7 @@
<ItemGroup>
<Folder Include="apps\" />
<Folder Include="ConfigMappings\" />
<Folder Include="Domain\" />
<Folder Include="PDF\" />
<Folder Include="resources\xml\" />
</ItemGroup>
Expand Down
25 changes: 25 additions & 0 deletions dotnet/test/DotNetUnitTest/Domain/GxHttpClientTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System.Net;
using GeneXus.Http.Client;
using Xunit;

namespace xUnitTesting
{

public class GxHttpClientTest
{
[Fact]
public void AddHeaderWithSpecialCharactersDoesNotThrowException()
{
GxHttpClient httpclient = new GxHttpClient();
string headerValue = "d3890093-289b-4f87-adad-f2ebea826e8f!8db3bc7ac3d38933c3b0c91a3bcdab60b9bbb3f607a1c9b312b24374e750243f3a31d7e90a4c55@SSORT!d3890093-289b-4f87-adad-f2ebea826e8f!8c7564ac08514ff988ba6c8c6ba3fc0c";
string headerName = "Authorization";
httpclient.AddHeader(headerName, headerValue);
httpclient.Host="accountstest.genexus.com";
httpclient.Secure=1;
httpclient.BaseURL =@"oauth/gam/v2.0/dummy/requesttokenanduserinfo";
httpclient.Execute("GET", string.Empty);
Assert.NotEqual(((int)HttpStatusCode.InternalServerError), httpclient.StatusCode);

}
}
}