Вверх ↑
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
#1: 2019-08-12 11:40:48 ЛС | профиль | цитата
Нужно отправить файл на сервер google для перевода текста который находится в файле.
Вот мои попытки
Add(Memo,12354466,406,217)
{
Top=45
Width=595
Height=508
ScrollBars=2
}
Add(MainForm,2953706,42,203)
{
Width=611
Height=591
}
Add(StrList,15707161,294,112)
{
Strings=#5:hl=ru|8:ie=UTF-8|4:js=y|7:prev=_t|7:sl=auto|5:tl=en|
}
Add(ODialog,14775850,231,161)
{
link(onExecute,13354663:doData,[])
}
Add(EventFromData,13354663,287,161)
{
}
Add(HTTPClient,7512302,280,210)
{
URL="https://translate.googleusercontent.com/translate_f"
Method=1
UserAgent="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
Referer="https://translate.google.ru/?hl=ru&tab=TT"
Boundary="-----------------------------7e31eca2b0a44"
Point(PostData)
Point(Headers)
link(FileName,13354663:GetData,[])
link(onFinish,9162939:doEvent,[])
link(PostData,15707161:Text,[])
link(Headers,16520475:Text,[(307,202)(335,202)])
}
Add(Hub,12491635,182,203)
{
link(onEvent1,14775850:doExecute,[(214,209)(214,167)])
link(onEvent2,7512302:doLoadString,[])
}
Add(Button,10436658,119,203)
{
Left=10
Top=15
link(onClick,12491635:doEvent1,[])
}
Add(GZIP,11076440,343,259)
{
}
Add(VisualStrings,16520475,329,175)
{
Lines=#19:Cookie: wd=1024x673|
Width=123
}
Add(Debug,9162939,343,217)
{
WEName="Result"
VDName=""
link(onEvent,12354466:doAdd,[])
}
Нужно отправить именно файл, с адресной строки перевод не подходит, это я уже делал, так как длинный url приводит к ошибке.

Так файл отправляет IE
POST https://translate.googleusercontent.com/translate_f HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: https://translate.google.ru/?hl=ru&tab=TT
Accept-Language: ru-RU
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: multipart/form-data; boundary=---------------------------7e3368b2b0a44
Accept-Encoding: gzip, deflate
Host: translate.googleusercontent.com
Content-Length: 837
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: wd=1024x673

-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="hl"

ru
-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="ie"

UTF-8
-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="js"

y
-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="prev"

_t
-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="sl"

auto
-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="tl"

en
-----------------------------7e3368b2b0a44
Content-Disposition: form-data; name="file"; filename="Новый текстовый документ (3).txt"
Content-Type: text/plain


-----------------------------7e3368b2b0a44--
Приходит ответ
HTTP/1.1 200 OK
Date: Mon, 12 Aug 2019 08:35:25 GMT
Expires: Mon, 12 Aug 2019 08:35:25 GMT
Cache-Control: private, max-age=86400
Content-Type: text/html; charset=UTF-8
Content-Language: en
X-Content-Type-Options: nosniff
Server: HTTP server (unknown)
X-XSS-Protection: 0
Alt-Svc: quic=":443"; ma=2592000; v="46,43,39"
Content-Length: 44

‹pre›Here is the text to be translated‹/pre›
Делаю такой же запрос, а в ответ пустая строка.

Редактировалось 1 раз(а), последний 2019-08-12 11:47:20
карма: 4

0
vip
#1.1контекстная реклама от партнеров
Ответов: 537
Рейтинг: 14
#2: 2019-08-12 13:49:04 ЛС | профиль | цитата
Сам сделал, сначала перепутал точки с файлом и данные не все заполнил

Add(Memo,12354466,413,203)
{
Top=45
Width=595
Height=508
ScrollBars=2
}
Add(MainForm,13041715,112,189)
{
Width=611
Height=591
}
Add(StrList,15707161,364,133)
{
Strings=#5:hl=ru|8:ie=UTF-8|4:js=y|7:prev=_t|7:sl=auto|5:tl=en|
}
Add(ODialog,14775850,322,84)
{
link(onExecute,13354663:doData,[])
}
Add(EventFromData,13354663,378,84)
{
}
Add(HTTPClient,7512302,350,196)
{
URL="https://translate.googleusercontent.com/translate_f"
Method=1
UserAgent="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
Referer="https://translate.google.ru/?hl=ru&tab=TT"
FileField="file"
FileMIME="text/html, application/xhtml+xml, */*"
Boundary="-----------------------------7e31eca2b0a44"
Point(PostData)
Point(Headers)
Point(RawHeaders)
Point(StatusText)
Point(UploadFile)
link(onFinish,12354466:doAdd,[])
link(PostData,15707161:Text,[])
link(Headers,16520475:Text,[(377,188)(405,188)])
link(UploadFile,13354663:GetData,[])
}
Add(Hub,12491635,287,189)
{
link(onEvent1,14775850:doExecute,[(311,195)(311,90)])
link(onEvent2,7512302:doLoadString,[])
}
Add(Button,10436658,238,189)
{
Left=10
Top=15
link(onClick,12491635:doEvent1,[])
}
Add(VisualStrings,16520475,399,161)
{
Lines=#19:Cookie: wd=1024x673|
Width=123
}

карма: 4

0
Ответов: 4621
Рейтинг: 746
#3: 2019-08-12 15:50:17 ЛС | профиль | цитата
Sersey писал(а):
FileMIME="text/html, application/xhtml+xml, */*"
FileMIME неправильно указано. Должно быть как в запросе от IE:
Sersey писал(а):
Content-Disposition: form-data; name="file"; filename="Новый текстовый документ (3).txt"
Content-Type: text/plain
Впрочем, в большинстве случаев серверу это неважно (тем более, для популярных расширений файлов в компоненте есть автоматическая подстановка по табличке).

Свойство Boundary может быть любым. Если не указать - подставится по-умолчанию.
Referer в большинстве случаев тоже можно не указывать.

Редактировалось 2 раз(а), последний 2019-08-12 15:50:45
карма: 26

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