Вход | Регистрация



Post-запрос передать строку на сервер

Post-запрос  передать строку на сервер
Я
   Nik_Zzz
 
21.11.18 - 11:07
Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
    HTTPСоединение = Новый HTTPСоединение("Строка соединения",80);
    HTTPЗапрос = Новый HTTPЗапрос("/СтрокаПуть.../addfile.php", Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки("Какой то текст", "UTF-8");
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Возврат HTTPОтвет.ПолучитьТелоКакСтроку();

В результате получаем : File uploading failed.

Кто знает в чём проблемка, что делаю не так ?
 
 
   dezss
 
1 - 21.11.18 - 11:22
А код состояния ответа какой?
Может быть все, что угодно. Может заголовков не хватает или еще чего-то.
Лучше сперва отправить вручную через браузер и отловить фидлером, что там происходит.
   Nik_Zzz
 
2 - 21.11.18 - 11:30
(1) Сообщить(HTTPОтвет.КодСостояния);
Сообщило 200 
200 это - 200 OK («хорошо»);
   Nik_Zzz
 
3 - 21.11.18 - 11:31
(1) В том то и проблема , что не понятно ,только как это выяснить?))
   Lexey_
 
4 - 21.11.18 - 11:32
(0) "File uploading failed."
может потому что ты передаешь "Какой то текст", а не файл?
   Nik_Zzz
 
5 - 21.11.18 - 11:37
(4) Ну да я передаю "Какой то текст" , так мне и нужно его передать
   Ёпрст
 
6 - 21.11.18 - 11:41
<какой-то текст> хоть кодируешь ?
   Ёпрст
 
7 - 21.11.18 - 11:41
раз делаешь x-www-form-urlencoded
   Lexey_
 
8 - 21.11.18 - 11:41
(5) а это не смущает? "addfile.php"
   dezss
 
9 - 21.11.18 - 11:47
(3) берешь фидлер, запускаешь его и делаешь все руками через браузер, потом смотришь, что там происходило и сравниваешься с отправкой из 1С
   Nik_Zzz
 
10 - 21.11.18 - 11:50
(7) Просто не кодирую пишу как есть "Какой то текст"
 HTTPЗапрос.УстановитьТелоИзСтроки("Какой то текст", "UTF-8");

ну мне нужно что то вроде этого :
Расположения файта там диск С:\итд\>curl -F "pp=@Text1.txt" 
"Строка соединения"......./addfile.php
 
 Рекламное место пустует
   Nik_Zzz
 
11 - 21.11.18 - 12:08
(8) А чем это должно смущать?
   Nik_Zzz
 
12 - 21.11.18 - 12:40
(7) Или нужно делать :Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");  ??
   eklmn
 
13 - 21.11.18 - 13:18
еще раз тебе повторю, смотри что наговнокодили пхпэшники в addfile
   Nik_Zzz
 
14 - 21.11.18 - 13:38
(13) Ну я же говорю когда через curl -F "pp=@Text1.txt"  делаю все добавляет норм
   Nik_Zzz
 
15 - 21.11.18 - 14:18
Кто знает, как можно передать параметр ?
Что поправить в этой строке?

HTTPЗапрос.УстановитьТелоИзСтроки("pp=C:\test3\Masage.txt", "UTF-8");
   dezss
 
16 - 21.11.18 - 16:00
(14) (15) блин...ну возьми ты фидлер и посмотри!!!
курлом отправляй, а в фидлере смотри что происходит
   oleg_km
 
17 - 21.11.18 - 17:25
(16) Потом 1Сом и сравнивай. Во, все разжевали
   Nik_Zzz
 
18 - 22.11.18 - 07:51
(16) Зачем мне курлом отправлять , если я проверял и так все работает , проблемка это сделать из 1С
фиддлером посмотрел вот  http://img.ipev.ru/2018/11/22/5.png
Вероятно не хватает каких то заголовков?!
   arsik
 
19 - 22.11.18 - 08:19
(18) Ты курлом сделай и посмотри фиддлером. То же самое потом воспроизведешь в 1С.
   Nik_Zzz
 
20 - 22.11.18 - 10:26
(19)Еще раз , вот делаю курлом , все получается: http://img.ipev.ru/2018/11/22/2.png
Как мне повторить в 1С-ке то , вот в чем вопрос ?!
   Тихий омут
 
21 - 22.11.18 - 10:55
ЧтениеТекста=Новый ЧтениеТекста(ИмяФайла,КодировкаТекста.UTF8);
Стр=ЧтениеТекста.Прочитать();

Ссылка="http:/your_url.r//";


WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"utf-8");
WinHttp.Open("POST",Ссылка,0);
WinHttp.SetRequestHeader("Accept-Language", "ru");
WinHttp.SetRequestHeader("Accept-Charset","utf-8");
WinHttp.setRequestHeader("Content-Language", "ru");
WinHttp.setRequestHeader("Content-Charset", "utf-8");
WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
ПараметрыПОСТ = "param="+Стр;
WinHttp.Send(ПараметрыПОСТ);
СтрокаОтветаСервера = WinHttp.ResponseText();
   Nik_Zzz
 
22 - 22.11.18 - 11:27
(21) А без СОМ объекта ни как? , просто в мобильной платформе его нет :)
   Tonik992
 
23 - 22.11.18 - 11:40
Почему устанавливаете Content-Type: application/x-www-form-urlencoded ?
   Nik_Zzz
 
24 - 22.11.18 - 12:02
(23)application/x-www-form-urlencoded, тело HTTP-сообщения, отправленного на сервер, по существу является одной большей строкой запроса
   Сияющий в темноте
 
25 - 22.11.18 - 12:18
Возьмите любую типовую,где есть Егаис и посмотрите отправку запроса в Утм это как раз ваш случай файл и ещн с обрезанием БОМ.
   arsik
 
26 - 22.11.18 - 12:28
(20) Что то ты не то делаешь. В фиддлере запрос от курла должен быть. Почему у тебя процесс браузер?
   Nik_Zzz
 
27 - 22.11.18 - 12:51
(26) выполняю курл , а в фиддлере нету ни чего , потом перехожу по ссылке в браузере , а оно норм публикуется
   arsik
 
28 - 22.11.18 - 12:58
(27) Значит фиддлер не настроен
   arsik
 
29 - 22.11.18 - 13:01
   Nik_Zzz
 
30 - 22.11.18 - 13:16
(29) (28) C:\test3>curl -F "pp=@masageB.txt" -x 10.255.1.232 -k ~andy/tsd/addfile.php
curl: (7) Failed to connect to 10.255.1.232 port 1080: Connection refused

пишу так но в фиддлере ни чего не появляется
   Nik_Zzz
 
31 - 22.11.18 - 13:18
C:\test3>curl -F "pp=@masageB.txt" -к 10.255.1.232 -k ~andy/tsd/addfile.php
Точнее так
   Nik_Zzz
 
32 - 22.11.18 - 13:20
C:\test3>curl -F "pp=@masageB.txt" -к 10.255.1.232/~andy/tsd/addfile.php
Точнее так
   arsik
 
33 - 22.11.18 - 15:29
(30) Делай вот так, и увидишь.
>curl -F "pp=@masageB.txt" -x 127.0.0.1:8888 -k 10.255.1.232/~andy/tsd/addfile.php

 
 
   Вафель
 
34 - 22.11.18 - 15:39
а ты файл кодируешь в base64 ?
   Nik_Zzz
 
35 - 22.11.18 - 15:45
(34) Ну вообще в идеале мне xml надо отправлять , но пока что хотя бы строку научиться
   Nik_Zzz
 
36 - 22.11.18 - 15:46
(34) так строку вроде если отправлять не нужно в  base64  кодировать если я не ошибаюсь
   Nik_Zzz
 
37 - 22.11.18 - 15:49
(33) Да так вот получилось :
http://img.ipev.ru/2018/11/22/1256.png
   Nik_Zzz
 
38 - 22.11.18 - 15:51
(33) Только пока слабо понимаю что с этой информацией делать :))
   arsik
 
39 - 22.11.18 - 15:54
(38) Ну вставь в заголовок 2 поля как у тебя в картинке, в тело запроса текст. Dhjlt nfr
   arsik
 
40 - 22.11.18 - 15:54
>Вроде так
   dezss
 
41 - 22.11.18 - 16:05
(37) и теперь смотри заголовки и сравни со своими
   Nik_Zzz
 
42 - 22.11.18 - 16:15
(39) (41) http://img.ipev.ru/2018/11/22/12569f97ca42e3f642c2.png
Просто строка поменялась , а запись не произошла
"File uploading failed."
   Nik_Zzz
 
43 - 22.11.18 - 16:19
(41) Там в первой строке вообще какой то guid
   dezss
 
44 - 22.11.18 - 16:28
(43) нажми на headers
   arsik
 
45 - 22.11.18 - 16:30
(42) А где?
Заголовки.Вставить("Content-Type", "text/plain");
   dezss
 
46 - 22.11.18 - 16:31
(45) ну зачем так сходу...надо ж было, чтоб человек сам сравнил заголовки
   Nik_Zzz
 
47 - 23.11.18 - 07:14
(44) (45) http://img.ipev.ru/2018/11/23/5.png

&НаСервере
Функция ВыполнитьPOSTЗапрос()
    Путь = "Content-Disposition: form-data; " + "name="+"""pp"""+"; " + "filename="+"""masageB.txt""";
    boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");   
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "multipart/form-data, boundary="+boundary);
    HTTPСоединение = Новый HTTPСоединение("10.255.1.232");
    HTTPЗапрос = Новый HTTPЗапрос("/~andy/tsd/addfile.php", Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(Путь);
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Сообщить(HTTPОтвет.КодСостояния);
    Возврат HTTPОтвет.ПолучитьТелоКакСтроку();
КонецФункции 

Всё равно приходит : File uploading failed :(
   zva
 
48 - 23.11.18 - 07:33
   dezss
 
49 - 23.11.18 - 08:47
(47) установи еще User-Agent не 1С+...
Были такие бывали такие траблы, что с таким заголовком нифига не работало))))
 
 Рекламное место пустует
   dezss
 
50 - 23.11.18 - 08:51
(49) Были такие бывали такие траблы -> Встречались такие такие траблы

Кстати, пробовали ставить любую лабуду, с ней работало, а с 1C+Enterprise, не работало)
   arsik
 
51 - 23.11.18 - 09:03
(47) Какой ты глупый
Функция ВыполнитьPOSTЗапрос()
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Disposition", "form-data; name=""pp""; filename=""masageB.txt""");
    Заголовки.Вставить("Content-Type", "text/plain");
    HTTPСоединение = Новый HTTPСоединение("10.255.1.232");
    HTTPЗапрос = Новый HTTPЗапрос("/~andy/tsd/addfile.php", Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки("Тут текст типа из файла");
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Сообщить(HTTPОтвет.КодСостояния);
    Возврат HTTPОтвет.ПолучитьТелоКакСтроку();
КонецФункции

   Nik_Zzz
 
52 - 23.11.18 - 09:57
(48) Она не перезаписывает данными из текстового файла почему-то,  
Вот в отладчике заголовки:
http://img.ipev.ru/2018/11/23/1256.png
   Nik_Zzz
 
53 - 23.11.18 - 10:03
(50) А как вставить лабуду тогда ?)это же по умолчанию прописывается
   arsik
 
54 - 23.11.18 - 11:03
Ну во первых это ты показываешь ответ.
Во вторых у тебя он лезет через прокси. Так и должно быть?
Возможно через прокси 10.255.1.232 недоступен.
   Nik_Zzz
 
55 - 23.11.18 - 11:34
(54) Ну через прокси я сделал, что бы через фиддлер отображалось, а так без посредников вроде
   Nik_Zzz
 
56 - 23.11.18 - 11:53
а хотя 1с-ка тоже лезет через прокси
   dezss
 
57 - 23.11.18 - 15:15
(53) если ты сам пропишешь этот заголовок, то он поменяется...просто 1с-ка сама дописывает, если ты этого не сделал


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует