2016-10-19 6 views
0

私はcURLを使用してAPIを呼び出すbashスクリプトを作成しています。他のソースから出てくる文字列を変換するコンテンツの一部を生成しています。 dbから、アプリケーションの理由からスペースは "_SPACE_"文字列に置き換えられます。 私はデータフィールド内の空白でのcURLエラー

ITEM=${M//_SPACE_/ } 

を使用して、それを交換していますし、私は次のようにカールを呼び出す:

curl ... --data '{"field": "'$ITEM'"}' ... 

それはカール実行

curl: (3) [globbing] unmatched close brace/bracket in column 21 
org.codehaus.jackson.JsonParseException: Unexpected end-of-input in VALUE_STRING 
at [Source: [email protected]; line: 4, column: 139] 

答えて

0

例外に例外を返すスクリプトを実行

org.codehaus.jackson.JsonParseException: Unexpected end-of-input in VALUE_STRING ... 

は、コードハウスからのあなたのライブラリは、カール経由で送信されるデータオブジェクトを解析できないと言います。あなたの--data '{"field": "' $ ITEM '"}'オブジェクトが一重引用符 '$ ITEM'のために失敗すると思います。完全なデータオブジェクトまたはスクリプトを送信できますか?

+0

スペースのプレースホルダを別の文字(たとえばITEM = $ {M // _ SPACE _/_})に置き換えると、cURL呼び出しがうまく動作します。 –

+0

置き換えをエコーし​​て、右の道を置き換える?私はsedをテストすることをお勧めできます。 'sed '/ _SPACE_// g'' –

+0

もちろん、この記事はこの投稿に記載されている問題が見つかった場合には –

関連する問題