使用json和文件 curl

nfs0ujit  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(310)

我想把一个文件和json数据沿着发送到我的端点,类似于:

curl --location --request POST 'abc.com/upload'
--header 'Authorization: Bearer '
--header 'Content-Type: application/json'
--data-raw '{
"user": {"email":"abx@xyz.com"},
"options": {"process":"order_lines","selection":"price","tolerance":"loose","target":"transport_orders"},
"import-file": "/path/to/file.csv"
}'

我想实现这样的目标,我该怎么做呢?

qltillow

qltillow1#

问题可能是,你的curl不是一个“application/json”请求。
它到达“abc.com“时的格式为Content-Type: application/x-www-form-urlencoded
我在我的curl测试站点上运行了您的请求,它返回了以下内容:

Content-Length: 177
Content-Type: application/x-www-form-urlencoded
Accept: */*

BODY=
{ "user": {"email":"abx@xyz.com"}, "options": {"process":"order_lines","selection":"price","tolerance":"loose","target":"transport_orders"}, "import-file": "/path/to/file.csv" }
BODY urlencoded
{ "user": {"email":"abx@xyz.com"}, "options": {"process":"order_lines","selection":"price","tolerance":"loose","target":"transport_orders"}, "import-file": "/path/to/file.csv" }

$_SERVER['QUERY_STRING'])

argv

$_POST
array (
  '{_"user":_{"email":"abx@xyz_com"},_"options":_{"process":"order_lines","selection":"price","tolerance":"loose","target":"transport_orders"},_"import-file":_"/path/to/file_csv"_}' => '',
)
$_GET
array (
)
$_REQUEST
array (
  '{_"user":_{"email":"abx@xyz_com"},_"options":_{"process":"order_lines","selection":"price","tolerance":"loose","target":"transport_orders"},_"import-file":_"/path/to/file_csv"_}' => '',
)
$_FILES
array (
)
$_SERVER
array (
  'CONTENT_LENGTH' => '177',
  'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
  'CONTEXT_DOCUMENT_ROOT' => '/home3/el/public_html',
  'CONTEXT_PREFIX' => '',
  'DOCUMENT_ROOT' => '/home3/el/public_html',
  'GATEWAY_INTERFACE' => 'CGI/1.1',
  'HTTP_ACCEPT' => '*/*',
  'PATH' => '/bin:/usr/bin',
  'QUERY_STRING' => '',
  'REDIRECT_STATUS' => '200',
  'REMOTE_PORT' => '44160',
  'REQUEST_METHOD' => 'POST',
  'REQUEST_SCHEME' => 'http',
  'SERVER_PORT' => '80',
  'SERVER_PROTOCOL' => 'HTTP/1.1',
  'SERVER_SIGNATURE' => '',
  'SERVER_SOFTWARE' => 'Apache',
  'TZ' => 'America/New_York',
  'UNIQUE_ID' => 'Y2YLKkUvOXKNProdJ9j6hQAAAAc',
  'REQUEST_TIME_FLOAT' => 1667631914.040588,
  'REQUEST_TIME' => 1667631914,
  'argv' => 
  array (
  ),
  'argc' => 0,
)

我的问题是,您是否可以让“端点”检索/path/to/file_csv的内容,或者您是否有必要让客户端检索csv并将其传递给“端点”?

w8rqjzmb

w8rqjzmb2#

您必须在-d选项之后传递<path-to-json-file>,例如:

curl --location --request POST 'abc.com/upload'
--header 'Authorization: Bearer '
--header 'Content-Type: application/json'
-d @<path-to-json-file>

您可以在这里找到更多信息。

相关问题