.net WebRequest adds quatation marks to response
===

I am using the following simple code to consume a WCF .Net service : 

    private static string Request(string baseAddress, string relativePath, Dictionary<string, string> jsonDictionaryMessageBody, params string[] headers)
        {
            var serializer = new JavaScriptSerializer();
            string jsonMessageBody = serializer.Serialize(jsonDictionaryMessageBody);

            UriBuilder addressBuilder = new UriBuilder();
            addressBuilder.Host = _baseAddress;
            addressBuilder.Path = relativePath;
            addressBuilder.Port = 9081;
            Uri serviceUri = addressBuilder.Uri;

            HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(serviceUri);
            webRequest.Method = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
            webRequest.ContentLength = jsonMessageBody.Length;

            foreach (string header in headers)
            {
                webRequest.Headers.Add(header);
            }

            Stream reqStream = null;
            Stream respStream = null;
            Stream exStream = null;
            string response;

            try
            {
                byte[] reqBodyBytes = Encoding.UTF8.GetBytes(jsonMessageBody);
                reqStream = webRequest.GetRequestStream();
                reqStream.Write(reqBodyBytes, 0, reqBodyBytes.Length);
                string bc = webRequest.ToString();
                HttpWebResponse resp;
                resp = (HttpWebResponse)webRequest.GetResponse();
                respStream = resp.GetResponseStream();
                response = new StreamReader(respStream).ReadToEnd();
            }
            catch (WebException ex)
            {
                WebResponse exResp = ex.Response;
                exStream = exResp.GetResponseStream();
                response = new StreamReader(exResp.GetResponseStream()).ReadToEnd();
                throw new Exception();
            }
            finally
            {
                SafeAction(() =>
                {
                    if (reqStream != null)
                        reqStream.Close();
                });
                SafeAction(() =>
                {
                    if (respStream != null)
                        respStream.Close();
                });
                SafeAction(() =>
                {
                    if (exStream != null)
                        exStream.Close();
                });

            }
            return response;
        }

        private static void SafeAction(Action ac)
        {
            try
            {
                ac();
            }
            catch
            {
            }
        }

The service , is suppose to return the following value "Hello World" -- where the quotation marks are part of the string , but the response return value is - "\"Hello World\"" , thus the framework added another pair of quatation marks to the string , this is probelmatic if a web service is calling a web service then we get "\"\"Hello World\"\"" , and so forth. 
Why does it occur and how can it be solved ? 

The string before being returned is being urlencoded using HttpUtility. 

Regards ,

James Roeiter