Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#1: 2011-05-20 17:04:33 ЛС | профиль | цитата
Помогите! Не могу справиться!

Как отправить самодельный POST запрос (YouTube-API не принимает стандартные POST запросы, у него там свой формат!!!), и приложить к нему, бинарный, фидео-файл. TCP Client, текст, передает в режиме String, а бинарные файлы в режиме Stream. А как передать одновременно и заголовок и бинарную часть - вместе?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2011-05-20 17:06:13 ЛС | профиль | цитата
а что мешает бинарные данные передать как текст?
карма: 27
0
Ответов: 1429
Рейтинг: 50
#3: 2011-05-20 17:21:50 ЛС | профиль | цитата
Спасибо, щас попробую.
[flood]Я не разбираюсь в этом, совершенно, поэтому сам не могу понять, что сделать.[/flood]
------------ Дoбавленo в 17.21:
Правильно так видео передать как текст?

Add(MainForm,89020,133,301)
{
Left=21
Top=105
Width=677
Height=335
}
Add(Hub,56102,287,399)
{
OutCount=3
link(onEvent1,66235:doOpen,[(348,405)(348,356)])
link(onEvent2,1694031:doCopy,[])
link(onEvent3,66235:doClose,[(339,419)(339,363)])
}
Add(TCP_Client,52372,546,392)
{
Port=130
}
Add(FileStream,66235,378,350)
{
}
Add(DropFile,18756,231,399)
{
link(onDropFile,56102:doEvent1,[])
}
Add(MemoryStream,1694031,378,406)
{
@Color=170
link(onCopy,15773027:doConvert,[])
link(SrcStream,66235:Stream,[])
}
Add(Stream2Hex,15773027,441,406)
{
Mode=4
link(onResult,52372:doSend,[])
}


И есть второй вопрос, каким элементом заменить MemoryStream, чтобы не закачивать файл в оперативку, а брать его с винчестера?
карма: 0

0
Ответов: 5446
Рейтинг: 323
#4: 2011-05-20 17:23:37 ЛС | профиль | цитата
login, раз не разбираешься - читай стандарт HTTP/1.1.
карма: 1

1
Голосовали:login
Ответов: 1429
Рейтинг: 50
#5: 2011-05-20 17:25:43 ЛС | профиль | цитата
iarspider, отличная инфа, спасибо, прочитаю. Но прямо сейчас, мне всеравно помощь нужна.
карма: 0

0
Ответов: 1429
Рейтинг: 50
#6: 2011-05-25 15:51:04 ЛС | профиль | цитата
DilmaНет,, не работает ваш метод. Отправляю файл как текст, загружается успешно, но получаю такой результат:
respo.png
А если загружаю тот-же файл через браузер, то он нормально перекодируется.

Преобразоване в текст делаю так:
code_24151.txt

Как надо делать правильно?
карма: 0

0
файлы: 2respo.png [5.7KB] [246], code_24151.txt [609B] [88]
Разработчик
Ответов: 26164
Рейтинг: 2127
#7: 2011-05-25 16:30:23 ЛС | профиль | цитата
login писал(а):
Как надо делать правильно?

Картинки, к примеру, передаеются как обычная ASCII строка (именно ASCII строка, не путать с обычным текстом) с указанием Content Length, сразу за текстом заголовка
login писал(а):
TCP Client, текст, передает в режиме String, а бинарные файлы в режиме Stream

Stream в TCP компонентах, насколько я понял код -- это оригиналная самоделка, которая понимается только нашими компонентами. И String, в нашем случае, не обычная текстова строка, а строка ASCII, те та, которая понимает использует набор кодов от 0 до 255
карма: 22

0
Ответов: 1429
Рейтинг: 50
#8: 2011-05-25 21:03:29 ЛС | профиль | цитата
Вот два запроса. Из браузера и из HiAsm:
запросы.rar

Тут явно разная кодировка у бинарных данных, подскажите какая это?
------------ Дoбавленo в 21.03:
в смысле, какая у браузера?
карма: 0

0
Ответов: 498
Рейтинг: 39
#9: 2011-05-25 21:13:58 ЛС | профиль | цитата
login, сначала отправляй нужные заголовки и переносы, потом сразу файл без преобразования.
карма: 0

0
Ответов: 1841
Рейтинг: 369
#10: 2011-05-25 21:16:28 ЛС | профиль | цитата
хм, мб HTTP_FileUpload?
Так-же у меня реализован Uploader любых файлов на файлообменник с участием этого элемента... (тут выкладывал)
карма: 1
0
Ответов: 1429
Рейтинг: 50
#11: 2011-05-25 21:20:27 ЛС | профиль | цитата
Muz-Tv, Не возможно, TCP_Client файлы без преобразования отправляет только в режиме Stream, а заголовки только в режиме String. Два режима одновременно низзя..
------------ Дoбавленo в 21.20:
CriDos, хорошо, а как в заголовок HTTP_FileUpload добавить это?

Authorization: GoogleLogin auth=DQAAAIgAAABGf1bbQLzXR8dVbkb-Tk3zjJuWXTFnPlBPPdVmXRV85D3poQ3FkFe9UOv73eyC2tmbYnfA3TchTBZaSg9f4_MS73liJSwI0Zy8_aV1Gozvgfj2zFZA6h50OYrCI5lbGK7HOJOh4lda_-qap8SDgRTLJQibVKf3DuGRTnBxSugr5xWvIiBIY5ZKs4mF7kkVjnY
GData-Version: 2
X-GData-Client: sxxxch
X-GData-Key: key=AI39si5KopLoQcNZEfvKwA8KMrYPWIWe_zoeCm7h5o7Tdf-mieulrsb9TQnTBx-oq8oH57KuJTMCPmY7nQfnwnUdU7lINfG5iA
Slug: asd.3gp
Content-Type: multipart/related; boundary="f93dcbA3"

карма: 0

0
Ответов: 498
Рейтинг: 39
#12: 2011-05-25 21:22:27 ЛС | профиль | цитата
login, всегда вместе с режимом string отправлял и работало.
карма: 0

0
Ответов: 1429
Рейтинг: 50
#13: 2011-05-25 21:33:31 ЛС | профиль | цитата
Muz-Tv, пробовал несколько раз, TCP_Client ничего не передает, просто не видит ничего кроме текста, а если переключаю в режим Stream, то передает, но текст уже не передает.
карма: 0

0
Ответов: 498
Рейтинг: 39
#14: 2011-05-25 21:35:26 ЛС | профиль | цитата
login, примера схемы отправки нет?
карма: 0

0
Ответов: 1429
Рейтинг: 50
#15: 2011-05-25 21:37:15 ЛС | профиль | цитата
Очень жаль, что у HTTP_FileUploadа нет свойства "произвольные заголовки", а в построителе POST запросов только фиксированные свойства, а нельзя просто написать свою шапку, и подать на точку File бинарный файл. Как-то так.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)