HttpwebRequest.getResponse () löst "schlechte Anfrage" 400 Fehler ausC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 HttpwebRequest.getResponse () löst "schlechte Anfrage" 400 Fehler aus

Post by Anonymous »

Im Folgenden finden Sie den Beispielcode mit (geänderte tatsächliche URL und Anmeldeinformationen) < /p>

Code: Select all

ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback((object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) => { return true; });

var requestUri = new Uri("https://example.com/path1/path2?var=somevar");

byte[] data = Encoding.UTF8.GetBytes("DEV72*12/27/06*TAYLOR*RICH*JOE*10/28/56*U0999495102*466666666*01*TAYLOR*TAMMY*M*10/26/52***CIGNA HMO*62308*UPIN*MEDICAL CENTER**MESSAGE*M*F*30");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.PreAuthenticate = true;
request.UseDefaultCredentials = false;
request.Credentials = new NetworkCredential("UUUSSSEEERR", "PASSWORD");
request.ContentLength = data.Length;
request.ContentType = "text/plain";
request.Method = "POST";

using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
stream.Flush();
}

StreamReader streamReader = null;

string result;
try
{
streamReader = new StreamReader(request.GetResponse().GetResponseStream());
result = streamReader.ReadToEnd();
}
finally
{
streamReader.Close();
}

txtOutput.Text = result;
< /code>

Es wird beim ersten Lauf immer schlechte Anforderungsausnahme ausgelöst, aber wenn ich den Cursor in Debugger in die erste Zeile zurückziehe, funktioniert es einwandfrei und gibt die richtige Antwort in txtOutput.text und das gleiche Verhalten in abgetrennter Anwendung. Zum ersten Mal wirft es Ausnahme aus, aber zweitens funktioniert es gut. />   Update: < /strong> < /p>

Zum Beispiel funktioniert der folgende Code für mich, aber dies ist nicht die Arbeit, nach der ich suche.var requestUri = new Uri("https://example.com/path1/path2?var=somevar");

ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback((object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) => { return true; });

byte[] data = Encoding.UTF8.GetBytes("DEV72*12/27/06*TAYLOR*RICH*JOE*10/28/56*U0999495102*466666666*01*TAYLOR*TAMMY*M*10/26/52***CIGNA HMO*62308*UPIN*MEDICAL CENTER**MESSAGE*M*F*30");
HttpWebRequest request = null;
int counter = 0;
do
{
request = (HttpWebRequest)WebRequest.Create(requestUri);

request.PreAuthenticate = true;
request.UseDefaultCredentials = false;
request.Credentials = new NetworkCredential("USERNAME", "password");
request.ContentLength = data.Length;
request.ContentType = "text/plain";
request.Method = "POST";

using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
stream.Flush();
}

StreamReader streamReader = null;

string result = string.Empty;
try
{
streamReader = new StreamReader(request.GetResponse().GetResponseStream());
result = streamReader.ReadToEnd();
}
catch (WebException ex)
{
HttpWebResponse response = (HttpWebResponse)ex.Response;
if (response.StatusCode == HttpStatusCode.BadRequest)
{
counter++;
}
else
{
txtOutput.Text = ex.ToString();
}
}
finally
{
if(streamReader != null) streamReader.Close();
}

txtOutput.Text = result;

} while (counter == 1);

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post