Ich erhalte eine Ausnahme als "Der Header hat einen leeren Wert". Dies ist die POST-Anfrage. In einigen Fällen muss ich einen Header-Wert als leer senden.System.ArgumentException: Der Header hat einen leeren Wert
Dies ist mein Code:
private void Start()
{
try
{
this.webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(this.requestURL);
//this.webRequest.Headers[HttpRequestHeader.UserAgent] = this.userAgent;
webRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache";
webRequest.Headers[HttpRequestHeader.Pragma] = "no-cache";
webRequest.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.UtcNow.ToString();
webRequest.Method = "POST";
if (headers != null && headers.Count > 0)
{
webRequest.Headers["some-Header"] = "";
}
IAsyncResult result = this.webRequest.BeginGetRequestStream(new AsyncCallback(RequestCallback), webRequest);
}
catch (Exception ex)
{
}
}
void RequestCallback(IAsyncResult result)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
//if (RequestBody != null)
{
using (Stream postStream = request.EndGetRequestStream(result))
{
using (var writer = new StreamWriter(postStream))
{
writer.Write(string.Empty);
writer.Flush();
postStream.Position = 0;
byte[] mArray = new byte[postStream.Length];
postStream.Read(mArray, 0, (int)postStream.Length);
}
}
}
request.BeginGetResponse(new AsyncCallback(OnRequestResponse), request);
}
private void OnRequestResponse(IAsyncResult ar)
{
try
{
System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)this.webRequest.EndGetResponse(ar);
webResponseHeaders = response.Headers.GetHeaders();
System.IO.Stream responseStream = response.GetResponseStream();
}
catch (Exception ex)
{
}
}
Erste Ausnahme in OnRequestResponse Rückruf bei System.Net.HttpWebResponse response = (System.Net.HttpWebResponse) this.webRequest.EndGetResponse (ar);
Meine Frage ist, über leere Header in HTTP-Anfrage gesendet werden. Nicht über Rückrufe. – nucleons
hast du meinen Vorschlag ausprobiert? Vielleicht wird es funktionieren –
@nucleons Sie haben tatsächlich nicht eine Frage oben gestellt. Ich sehe jedoch ein unterschiedliches Verhalten bei der Verarbeitung von leeren Headern auf verschiedenen Plattformen. AFAICS Windows 8.1 app sendet leere Header, WPA10 streift sie von der Anfrage nach Fiddler. –