Имя: Пароль:
1C
 
Post-запрос передать строку на сервер
0 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.

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

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


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

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();
22 Nik_Zzz
 
22.11.18
11:27
(21) А без СОМ объекта ни как? , просто в мобильной платформе его нет :)
23 Tonik992
 
22.11.18
11:40
Почему устанавливаете Content-Type: application/x-www-form-urlencoded ?
24 Nik_Zzz
 
22.11.18
12:02
(23)application/x-www-form-urlencoded, тело HTTP-сообщения, отправленного на сервер, по существу является одной большей строкой запроса
25 Сияющий в темноте
 
22.11.18
12:18
Возьмите любую типовую,где есть Егаис и посмотрите отправку запроса в Утм это как раз ваш случай файл и ещн с обрезанием БОМ.
26 arsik
 
гуру
22.11.18
12:28
(20) Что то ты не то делаешь. В фиддлере запрос от курла должен быть. Почему у тебя процесс браузер?
27 Nik_Zzz
 
22.11.18
12:51
(26) выполняю курл , а в фиддлере нету ни чего , потом перехожу по ссылке в браузере , а оно норм публикуется
28 arsik
 
гуру
22.11.18
12:58
(27) Значит фиддлер не настроен
29 arsik
 
гуру
22.11.18
13:01
30 Nik_Zzz
 
22.11.18
13:16
(29) (28) C:\test3>curl -F "[email protected]" -x 10.255.1.232 -k ~andy/tsd/addfile.php
curl: (7) Failed to connect to 10.255.1.232 port 1080: Connection refused

пишу так но в фиддлере ни чего не появляется
31 Nik_Zzz
 
22.11.18
13:18
C:\test3>curl -F "[email protected]" -к 10.255.1.232 -k ~andy/tsd/addfile.php
Точнее так
32 Nik_Zzz
 
22.11.18
13:20
C:\test3>curl -F "[email protected]" -к 10.255.1.232/~andy/tsd/addfile.php
Точнее так
33 arsik
 
гуру
22.11.18
15:29
(30) Делай вот так, и увидишь.
>curl -F "[email protected]" -x 127.0.0.1:8888 -k 10.255.1.232/~andy/tsd/addfile.php
34 Вафель
 
22.11.18
15:39
а ты файл кодируешь в base64 ?
35 Nik_Zzz
 
22.11.18
15:45
(34) Ну вообще в идеале мне xml надо отправлять , но пока что хотя бы строку научиться
36 Nik_Zzz
 
22.11.18
15:46
(34) так строку вроде если отправлять не нужно в  base64  кодировать если я не ошибаюсь
37 Nik_Zzz
 
22.11.18
15:49
(33) Да так вот получилось :
http://img.ipev.ru/2018/11/22/1256.png
38 Nik_Zzz
 
22.11.18
15:51
(33) Только пока слабо понимаю что с этой информацией делать :))
39 arsik
 
гуру
22.11.18
15:54
(38) Ну вставь в заголовок 2 поля как у тебя в картинке, в тело запроса текст. Dhjlt nfr
40 arsik
 
гуру
22.11.18
15:54
>Вроде так
41 dezss
 
22.11.18
16:05
(37) и теперь смотри заголовки и сравни со своими
42 Nik_Zzz
 
22.11.18
16:15
(39) (41) http://img.ipev.ru/2018/11/22/12569f97ca42e3f642c2.png
Просто строка поменялась , а запись не произошла
"File uploading failed."
43 Nik_Zzz
 
22.11.18
16:19
(41) Там в первой строке вообще какой то guid
44 dezss
 
22.11.18
16:28
(43) нажми на headers
45 arsik
 
гуру
22.11.18
16:30
(42) А где?
Заголовки.Вставить("Content-Type", "text/plain");
46 dezss
 
22.11.18
16:31
(45) ну зачем так сходу...надо ж было, чтоб человек сам сравнил заголовки
47 Nik_Zzz
 
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 :(
48 zva
 
23.11.18
07:33
49 dezss
 
23.11.18
08:47
(47) установи еще User-Agent не 1С+...
Были такие бывали такие траблы, что с таким заголовком нифига не работало))))
50 dezss
 
23.11.18
08:51
(49) Были такие бывали такие траблы -> Встречались такие такие траблы

Кстати, пробовали ставить любую лабуду, с ней работало, а с 1C+Enterprise, не работало)
51 arsik
 
гуру
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Ответ.ПолучитьТелоКакСтроку();
КонецФункции
52 Nik_Zzz
 
23.11.18
09:57
(48) Она не перезаписывает данными из текстового файла почему-то,  
Вот в отладчике заголовки:
http://img.ipev.ru/2018/11/23/1256.png
53 Nik_Zzz
 
23.11.18
10:03
(50) А как вставить лабуду тогда ?)это же по умолчанию прописывается
54 arsik
 
гуру
23.11.18
11:03
Ну во первых это ты показываешь ответ.
Во вторых у тебя он лезет через прокси. Так и должно быть?
Возможно через прокси 10.255.1.232 недоступен.
55 Nik_Zzz
 
23.11.18
11:34
(54) Ну через прокси я сделал, что бы через фиддлер отображалось, а так без посредников вроде
56 Nik_Zzz
 
23.11.18
11:53
а хотя 1с-ка тоже лезет через прокси
57 dezss
 
23.11.18
15:15
(53) если ты сам пропишешь этот заголовок, то он поменяется...просто 1с-ка сама дописывает, если ты этого не сделал
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс