Я хочу сделать создать с помощью веб-сервиса, который нуждается в URI, как это:
Запрос URI слишком долго с WebService
http://<url>/webservice.php?operation=<operation>&elementType=<elementType>&element=<element>&
моя проблема, элемент является вся информация по электронной почте с HTML тела, которое является около 6000 символов.
Я хочу, чтобы вызвать URL, как это:
var request = WebRequest.Create(urlToUse.ToString());
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = urlToUse.Length;
var requestStream = request.GetRequestStream();
var requestStreamWriter = new StreamWriter(requestStream);
requestStreamWriter.Write(urlToUse);
requestStreamWriter.Close();
var response = request.GetResponse();
var responseStream = response.GetResponseStream();
if (responseStream == null) return null;
var responseStreamReader = new StreamReader(responseStream);
var responseFromServer = responseStreamReader.ReadToEnd();
responseStreamReader.Close();
responseStream.Close();
response.Close();
но он ломает в
var response = request.GetResponse();
и говорит Ури слишком долго.
Я не могу изменить максимальную длину URL-адреса сервера, а веб-сервису нужны параметры в URL-адресе.
Я еще не нашел подходящего решения для меня, поэтому любая помощь приветствуется.
Update:
Для тех, кто сталкивается с аналогичной проблемой, решение, которое работало для меня было поместить мой запрос в байт-массив как
var encoding = new UTF8Encoding();
byte[] bytes = enconding.GetBytes((queryString));
и писал, что в WebRequest вместо моего QueryString
var stream = request.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
Вы используете 'POST', так почему бы вам не передать информацию в теле запроса? – Belogix
Вы, кажется, путаетесь с тем, как GET и POST работают и используют сочетание обоих в вашем коде. Если вы отправляете данные через POST, вам не нужно включать их в качестве параметров запроса. –
Если я добавлю информацию в тело, как я могу поместить их после URL-адреса, чтобы веб-сервис выполнял то, что нужно? – user2414460