Windows用のcURLコマンドラインをインストールしました。
ここで、このcURLをREST api(redmine)に使用したいと思います。
私が作成したい最も基本的なスクリプトは、新しい「過去」をプッシュすることです。ただし、問題は、1つの過去に複数行のテキストが含まれている可能性があることです。
新しい過去を置くために私は使用します:
curl -k -s -H "X-Redmine-API-Key: %API_KEY%" --data-urlencode "paste[text]=%TEXT%" %URL%
ただし、問題は、%TEXT%が複数の行で構成されている場合、Windowsのcmdが失敗することです。
元:
curl -k -s -H "X-Redmine-API-Key: XXXXXX" --data-urlencode "paste[text]=ST_METHOD_POST', 'POST', true);
define('HTTP_REQUEST_METHOD_PUT', 'PUT', true);
define('HTTP_REQUEST_METHOD_DELETE', 'DELETE', true);" "https://etc"
そして、cmdは最初の改行の後で停止します...
複数行のwincmdをシミュレートするために、行の最後に^を追加して、cmdを実行する前にTEXTを解析しようとしましたが、機能しません...
アップデート1:
やってみます
curl -k -s -H "X-Redmine-API-Key: %API_KEY%" --data-urlencode "paste[text]@tmp.txt" %URL%
ここで、tmp.txtは次のようになります。
hello world
しかし、リクエストはに変換されます
{"paste":{"id":xxx,"author_id":xxx,"project_id":xxx,"title":"Paste #xxx","text":"
■h\u0000e\u0000l\u0000l\u0000o\u0000 \u0000w\u0000o\u0000r\u0000l\u0000d\u0000",
"created_on":"2012-11-26T09:24:15Z","updated_on":"2012-11-26T09:24:15Z"}}
そして、最終結果は機能しません