2015-08-06 4 views
0

Я пытаюсь выполнить команду curl post через скрипт bash, и у меня много проблем.Как выполнить команду CURL post в bash?

Вот код Баш у меня есть:

#!/bin/bash 
url='http://slc760.us.oracle.com:10601/crmCommonApi/resources/latest' 
Content='Content-Type:application/vnd.oracle.adf.batch+json' 
user="sales_representative" 
payload='{ "parts": [{"id": "part1","path": "/latest/__ORACO__Inventory_c","operation": "create","payload": {"__ORACO__Product_Id2_c":204,"__ORACO__Facing_c":"20","__ORACO__Product_Id1_c":204,"__ORACO__Product_c": "Ghirardelli White Choco","__ORACO__ShelfStock_c":"10","__ORACO__Location_c" : "Aisle 2","Organization_Id___ORACO__Account_Inventory":"300100051199355"}},{"id": "part1","path": "/latest/__ORACO__Inventory_c","operation": "create","payload": {"__ORACO__Product_Id2_c":204,"__ORACO__Facing_c":"3","__ORACO__Product_Id1_c":204,"__ORACO__Product_c": "Ghirardelli White Chocolcate","__ORACO__ShelfStock_c":"4","__ORACO__Location_c" : "Aisle 2","Organization_Id___ORACO__Account_Inventory":"300100051199355"}}]}' 

curl -X POST -H "Content-Type:application/vnd.oracle.adf.batch+json" \ 
    --data $payload \ 
    $url \ 
    --user $user 

При запуске выбрасывает кучу ошибок:

curl: (6) Could not resolve host: "parts" 
curl: (3) [globbing] bad range specification in column 2 
curl: (6) Could not resolve host: "part1","path" 
curl: (6) Could not resolve host: " 
curl: (6) Could not resolve host: "create","payload" 
curl: (3) [globbing] unmatched brace in column 1 
curl: (6) Could not resolve host: "Ghirardelli 
curl: (6) Could not resolve host: White 
curl: (6) Could not resolve host: Choco","__ORACO__ShelfStock_c" 
curl: (7) Failed to connect to port 80: Connection refused 
curl: (6) Could not resolve host: "Aisle 
curl: (3) [globbing] unmatched close brace/bracket in column 66 
curl: (6) Could not resolve host: "part1","path" 
curl: (6) Could not resolve host: " 
curl: (6) Could not resolve host: "create","payload" 
curl: (3) [globbing] unmatched brace in column 1 
curl: (6) Could not resolve host: "Ghirardelli 
curl: (6) Could not resolve host: White 
curl: (6) Could not resolve host: Chocolcate","__ORACO__ShelfStock_c" 
curl: (7) Failed to connect to port 80: Connection refused 
curl: (6) Could not resolve host: "Aisle 
curl: (3) [globbing] unmatched close brace/bracket in column 66 
org.codehaus.jackson.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: [email protected]; line: 1, column: 0]) 

При выполнении отделено через командную строку команды, кажется, работает, но то же самое, когда я пытаюсь для его выполнения в CURL выбрасывает указанную выше ошибку. Я знаю, что мне не хватает относительно цитат/синтаксиса.

+0

Пожалуйста, не просите, чтобы ваши вопросы обрабатывались более срочно, чем другие вопросы - люди, которые здесь отвечают, являются добровольцами, и они ответят на досуге. Благодаря! – halfer

ответ

1

Пожалуйста, попробуйте изменить следующие строки:

--data $payload 

в

--data '$payload' 
1

Попробуйте положить двойные кавычки на вашей полезной нагрузки:

curl -X POST -H "Content-Type:application/vnd.oracle.adf.batch+json" \ 
--data "$payload" \ 
$url \ 
--user $user 

Это должно работать.

Смежные вопросы