Разговор идет про кларионовскую обертку.
Наверно, я некорректно скопипастил CURL.EXE, надо было просто curl. Который был портирован на винду с юникса. Вроде и так должно быть понятно, про что речь.
Модератор: Дед Пахом
Разговор идет про кларионовскую обертку.
Наверно, я некорректно скопипастил CURL.EXE, надо было просто curl. Который был портирован на винду с юникса. Вроде и так должно быть понятно, про что речь.
Ну так можно свою написать. Был бы смысл (хинт: его нет)
Код: Выделить всё
curl --tr-encoding -X POST -v -# -o output -T abaeva.xml http://priem.edu.ru:8000/XML/UploadXML ^
-H "ContentType:application/x-www-form-urlencoded"^
-H "Accept-Language: ru"^
-H "Accept-Charset: utf-8"^
-H "Content-Language: ru"^
-H "Content-Charset: utf-8"^
Код: Выделить всё
* Trying 85.143.100.11:8000...
* TCP_NODELAY set
* Connected to priem.edu.ru (85.143.100.11) port 8000 (#0)
> POST /XML/UploadXML HTTP/1.1
> Host: priem.edu.ru:8000
> User-Agent: curl/7.67.0
> Accept: */*
> Connection: TE
> TE: gzip
> ContentType:application/x-www-form-urlencoded
> Accept-Language: ru
> Accept-Charset: utf-8
> Content-Language: ru
> Content-Charset: utf-8
> Content-Length: 250011
> Expect: 100-continue
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Location: /Account/AuthError?statusID=3
< Server: Microsoft-IIS/7.0
< X-Powered-By: ASP.NET
< Date: Fri, 22 Nov 2019 16:24:11 GMT
< Content-Length: 146
* HTTP error before end of send, stop sending
<
{ [146 bytes data]
0,1%*
Closing connection 0
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<Root name="Root">
<AuthData name="AuthData">
<Login name="Login">qwerty@yandex.ru</Login>
<Pass name="Pass">XXXX123</Pass>
<InstitutionID name="InstitutionID">1453</InstitutionID>
<CampageUID name="CampageUID">Д01000003450007019</CampageUID>
</AuthData>
<Enrollees name="Enrollees">
....
это реальный размер передаваемого файла.Content-Length: 250011
Тут нужно смотреть организацию конкретного сервиса и его интерфейсы.
В коде 1С у Вас есть
в скрипте я этого не вижу, "-T abaeva.xml" это не то же самое.ПараметрыПОСТ = "inputXML=" + СокрЛП(стр);
Да, я тоже это душой понимаю. Но как вставить в скрипт "inputXML=" + СОДЕРЖИМОЕ(abaeva.xml ) ума не приложу. Ведь размер файла 250011 байт. Т.е. в nettalk это выглядело бы примерно так
Для командной строки синтаксис будет: curl.exe -d @zapros.xml -o otvet.xml нттп://myservice.com (+ настройка, логин и т.д.)
Код: Выделить всё
curl TCurlClass
res CURLcode
url STRING(256)
argname STRING(32)
infile STRING(300000)
respfile STRING(256)
ContLen LONG
CODE
curl.Init()
url = 'http://priem.edu.ru:8000/XML/UploadXML'
argname = 'inputXML'
infile = 'abaeva.xml'
!ContLen=infile{PROP:FileSize}
!MESSAGE(ContLen,infile)
respfile = 'post_response.txt'
!------- mia ----------
curl.SetOpt(2,'utf-8')
curl.AddHttpHeader('ContentType:application/x-www-form-urlencoded; charset=utf-8')
curl.AddHttpHeader('Accept-Language: ru')
curl.AddHttpHeader('Accept-Charset: utf-8')
curl.AddHttpHeader('Content-Language: ru')
curl.AddHttpHeader('Content-Charset: utf-8')
curl.AddHttpHeader('ContentLength: 250220') !&ContLen&'<27>')
curl.SetHttpHeaders()
!-----------------------
res = curl.PostFile(url, argname, infile, respfile)
IF res = CURLE_OK
MESSAGE('Success, see file '& CLIP(respfile) &' for details', 'Post test', ICON:Asterisk)
ELSIF res = -1
MESSAGE('curl_formadd failed: errcode '& res, 'Post test', ICON:Asterisk)
ELSE
MESSAGE('PostFile failed: '& curl.StrError(res), 'libcurl', ICON:Exclamation)
END
Спасибо! Попробую.Игорь Столяров писал(а): ↑23 Ноябрь 2019, 5:57Для командной строки синтаксис будет: curl.exe -d @zapros.xml -o otvet.xml нттп://myservice.com (+ настройка, логин и т.д.)
Попробуйте добавить перед curl.PostFile Ваши регистрационные данные:
Код: Выделить всё
MyCurl.SetUserPwd(xUser_,xPass_)
Код: Выделить всё
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="http://priem.edu.ru:8000/XML/UploadXML">
<div>
<label for="InputXML"><b>XML file</b></label>
<input type="text" placeholder="Enter XML file" name="InputXML">
</div>
<div>
<button type="submit">Send file</button>
</div>
</form>
</body>
</html>
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<Root name="Root">
<AuthData name="AuthData">
<Login name="Login">qwerty@yandex.ru</Login>
<Pass name="Pass">XXXX123</Pass>
<InstitutionID name="InstitutionID">1453</InstitutionID>
<CampageUID name="CampageUID">Д01000003450007019</CampageUID>
</AuthData>
<Enrollees name="Enrollees">
</Enrollees>
</Root>
Код: Выделить всё
Ошибка {
"SUCCESS":false,
"GUIDS":[
{
"UID":"NULL",
"GUID":" NULL"
}
],
"Message":"Неверная Схема XML или поле FileBytes не Base64"
}
Ошибка {
"SUCCESS":false,
"GUIDS":[
{
"UID":"NULL",
"GUID":" NULL"
}
],
"Message":"В пакете не содержатся данные для авторизации"
}
Ошибка {
"SUCCESS":false,
"GUIDS":[
{
"UID":"NULL",
"GUID":" NULL"
}
],
"Message":"В пакете содержаться не верные данные для авторизации"
}
Ошибка {
"SUCCESS":false,
"GUIDS":[
{
"UID":"NULL",
"GUID":" NULL"
}
],
"Message":"Непредвиденная ошибка"
}
Bad Request - Invalid Verb
------------------------------------
HTTP Error 400. The request verb is invalid.