Ниже приведен пример кода с (измененный фактический URL и учетные данные) < /p>
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>
Он всегда бросает плохое исключение запроса при первом запуске, но когда я возвращаю курсор в отладчике на первую строку, он работает нормально и дает правильный ответ в txtoutput.text и одно и то же поведение в отдельном приложении, в первый раз он бросает исключение, но во второй раз он работает нормально, может дать мне немного работы или дать мне знать, что я делаю здесь. /> Обновление: < /strong> < /p>
Например, следующий код работает для меня, но это не так, как я ищу, я только что добавил цикл while, поймав WebException, и если его StatusCodvar 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);
Подробнее здесь: https://stackoverflow.com/questions/116 ... -400-error
Httpwebrequest.getResponse () бросает «плохой запрос» 400 ошибка ⇐ C#
Место общения программистов C#
-
Anonymous
1756544600
Anonymous
Ниже приведен пример кода с (измененный фактический URL и учетные данные) < /p>
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>
Он всегда бросает плохое исключение запроса при первом запуске, но когда я возвращаю курсор в отладчике на первую строку, он работает нормально и дает правильный ответ в txtoutput.text и одно и то же поведение в отдельном приложении, в первый раз он бросает исключение, но во второй раз он работает нормально, может дать мне немного работы или дать мне знать, что я делаю здесь. /> Обновление: < /strong> < /p>
Например, следующий код работает для меня, но это не так, как я ищу, я только что добавил цикл while, поймав WebException, и если его StatusCodvar 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);
Подробнее здесь: [url]https://stackoverflow.com/questions/11660947/httpwebrequest-getresponse-throws-bad-request-400-error[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия