Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   пост запросы http (http://forums.kuban.ru/f1040/post_zaprosy_http-6767630.html)

ktVladimir 28.04.2015 16:56

пост запросы http
 
В общем стоит задача передать xmlку на сайт написан код в виде компиляцию нарытой и надерганной инфы с инета

АдресРесурсаНаСервере = "http://10.37.0.11:8080//2/ServiceModel/EntityDataService.svc/PTIncidentsCollection";
пОбъект = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
пОбъект.Open("POST", АдресРесурсаНаСервере, False);
пОбъект.SetCredentials("аа","аа",0);
ТелоЗапроса =
"<?xml version=""1.0"" encoding=""utf-8""?>
| <entry xmlns=""http://www.w3.org/2005/Atom"">
| <content type=""application/xml""><properties xmlns=""http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"">
| <PTName xmlns=""http://schemas.microsoft.com/ado/2007/08/dataservices"">Инцидент</PTName>
| <PTDescriptionProblem xmlns=""http://schemas.microsoft.com/ado/2007/08/dataservices"">Опсиание проблемы</PTDescriptionProblem>
| </properties>
| </content>
| </entry>";

пОбъект.SetRequestHeader("Content-Length", Строка(СтрДлина(ТелоЗапроса)));
пОбъект.Send(ТелоЗапроса);

пОбъект.Status возвращает 400

пОбъект.ResponseText()
возвращает
<?xml version="1.0" encoding="utf-8" standalone="yes"?><error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><code>4</code><message xml:lang="">Content-Type header value missing.</message><innererror><message>Content-Type header value missing.</message><type>System.Data.Services.DataServiceException</type><stacktrace> at System.Data.Services.HttpProcessUtility.ReadContentType(String contentType, String&amp; mime, Encoding&amp; encoding)&#xD;
at System.Data.Services.Serializers.Deserializer.CreateDeserializer(RequestDescription description, IDataService dataService, Boolean update, UpdateTracker tracker)&#xD;
at System.Data.Services.DataService`1.HandlePostOperation(RequestDescription description, IDataService dataService)&#xD;
at System.Data.Services.DataService`1.ProcessIncomingRequest(RequestDescription description, IDataService dataService)&#xD;
at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)&#xD;
at System.Data.Services.DataService`1.HandleRequest()</stacktrace></innererror></error>

roma n 28.04.2015 17:34

Спросить-то что хотел?
Ну не знает сервер как раскодировать твой запрос в связи с отсутствием у него заголовка Content-Type...

Reaper 28.04.2015 21:54

Вот нахрена это СОМ-дерьмо вообще?

Reaper 28.04.2015 22:01

Соединение = Новый HTTPСоединение("http://10.37.0.11:8080");
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/xml");
Запрос = Новый HTTPЗапрос("/2/ServiceModel/EntityDataService.svc/PTIncidentsCollection", Заголовки);
Запрос.УстановитьТелоИзСтроки(...);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();

А то, что у тебя в коде используется в качестве тела - это вообще нечто непонятное. Ищи документацию к своему сайту, наверняка там тело запроса совершенно иное должно быть.

qweqwe123123 29.04.2015 03:03

[em]стоит задача передать xmlку на сайт[/em]
лично я понимаю как с правами админа сайта поместить копию локального файла в папку на web-сервере

ktVladimir 29.04.2015 10:27

спасибо. Если честно то это был дурдом когда слепой тычется и пытается найти непонятно что. Я особо не понимаю в запросах http. в свою очередь товарищ который занимается сайтом не знает как. Ответ один на входе должна быть xml.. вот и получился дурдом. когда тупо тыкал пальцами.... в общем лады проехали. тема не актуальна. отдали на откуп разрабам


Текущее время: 15:19. Часовой пояс GMT +3.