Это из документации CURL
-F, --form
(HTTP SMTP IMAP) Для семейства протоколов HTTP это позволяет имитировать завитокзаполненная форма, в которой пользователь нажал кнопку отправки. Это приводит к скручиванию данных POST с использованием multipart / form-data типа данных в соответствии с RFC 2388.
Когда форма отправляется в Classic ASP с использованием типа содержимогоmultipart/form-data
единственный доступный метод - Request.BinaryRead()
, поскольку Request.Form
предназначен для application/x-www-form-urlencoded
данных.
Вот краткий пример вызова Request.BinaryRead()
для начала работы:
<%
'Should be less than configured request limit in IIS.
Const maxRequestSizeLimit = ...
Dim dataSize: dataSize = Request.TotalBytes
Dim formData
If dataSize < maxRequestSizeLimit Then
'Read bytes into a SafeArray
formData = Request.BinaryRead(dataSize)
'Once you have a SafeArray its up to you to process it.
...
Else
Response.Status = "413 PAYLOAD TOO LARGE"
Response.End
End If
%>
Анализ SafeArray не прост
Если вы все еще хотите использовать Request.Form
, вы можете сделать это, указав параметры формы в команде CURL, используя -d
вместо -F
.Из документации ;
-d, --data
(HTTP) Отправляет указанные данные в запросе POST на сервер HTTP, в том жето, что делает браузер, когда пользователь заполнил HTML-форму и нажал кнопку отправки. Это приведет к тому, что curl передаст данные на сервер, используя приложение типа контента / x-www-form-urlencoded .Сравните с -F, --form.
Таким образом, команда CURL будет выглядеть примерно так:
curl -X POST \
http://go.mytest-service.com/ \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d fff=vvvvv \
-d rrrr=ddddd \
-d xx=something
Затем вы получите параметр xx
в Classic ASP, используя;
<%
Dim xx: xx = Request.Form("xx")
%>
Полезные ссылки