Bug 7093 - URL Encoding missing in REST Get Request via WebChannelFactory
Summary: URL Encoding missing in REST Get Request via WebChannelFactory
Status: NEW
Alias: None
Product: Class Libraries
Classification: Mono
Component: System.Web (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2012-09-12 09:54 UTC by real
Modified: 2012-09-12 09:54 UTC (History)
1 user (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description real 2012-09-12 09:54:11 UTC
Version 2.11.4 (installed via downloaded rpms)

A Rest Request behaves differently in MS.NET as in Mono Linux.

Under Ms.Net.Windows this results in a http get Request to this URL: 
whocares.nowhere:8080/fr.svc/report?tt=2012%3acool 

Under Mono.Linux this results in a http get Request to this URL:
whocares.nowhere:8080/fr.svc/report?tt=2012:cool 

For somereason the URL Encoding is missing here.

Wild guess: The code in UriTemplate just forgets on applying the escaping.



Demo Code:

[ServiceContract]
public interface ITestInterface
{
	[WebGet(UriTemplate = "report?tt={p}")]
	[OperationContract]
	bool Report(string p);
}


public void Test()
{
	Uri frUriReport = new Uri(Uri.UriSchemeHttp + Uri.SchemeDelimiter + "whocares.nowhere:8080/fr.svc");
	var cfReport = new WebChannelFactory<ITestInterface>(new WebHttpBinding(), frUriReport);
	ITestInterface channel = cfReport.CreateChannel();
	string testdata = "2012:cool";
	var result = channel.Report(testdata);
}

Note You need to log in before you can comment on or make changes to this bug.