Preface
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 |
Code
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)
Solution:
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();
}
}