[Solved] HttpClient HttpRequestHeaders.From Error: The specified value is not a valid ‘From’ header string.


Reason for error: From needs to be the format of the email address.

Protocol header illustrate Example state
From Email address of the user who initiated this request From: [email protected] fixed



            HttpRequestMessage httpRequestMessage = new HttpRequestMessage();
            httpRequestMessage.Headers.Add("from", "mywork");
            httpRequestMessage.Headers.Add("timestamp", timestamp);
            httpRequestMessage.Headers.Add("signature", signature);
            httpRequestMessage.Headers.Add("client-name", client_name);
            httpRequestMessage.Method = HttpMethod.Get;
            httpRequestMessage.RequestUri = new Uri(Domain + requestUrl);

            HttpResponseMessage response = await _client.SendAsync(httpRequestMessage);

            string r = string.Empty;

            if (response.IsSuccessStatusCode)
                r = await response.Content.ReadAsStringAsync();

            return r;

Error Messages:

The format of value 'mywork' is invalid.

   at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
   at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(HeaderDescriptor descriptor, HeaderStoreItemInfo info, String value)
   at System.Net.Http.Headers.HttpHeaders.Add(String name, String value)



No suitable processing method has been found at present, temporarily use HttpWebRequest request

        public static string HttpGet(string url, string Accept, string ContentType, Dictionary<string, string> headers)
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";

            if (Accept.NotEmpty())
                request.Accept = Accept;

            if (ContentType.NotEmpty())
                request.ContentType = ContentType;

            if (headers != null)
                foreach (KeyValuePair<string, string> item in headers)
                    request.Headers.Add(item.Key, item.Value);

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                return reader.ReadToEnd();

Similar Posts: