curl で POST

トイレの入出場管理をする仕組みを作っていて、入退場を知らせる信号を WebAPI を使ってサーバに通知する仕組みを考えた。
Json 形式のデータをアップロードするのに、curl の使い方がわからなかった。

解決策

curl -X POST -d “value=test” http://localhost:[port]/api/values/

開発マシンに IIS Express を走らせて、そこで正常系テストを行おうと考えたが、やっぱりここでも、ファイルパーミッションではねられる。
オンプレミス環境に IIS 構築の途中だったこともあり、ここは年貢の収め所。観念して中途半端だった構築作業を再開。
開発マシンのファイルパーミッションで解決する話かどうかを調査試みる予定。

30min later:

開発マシンの IIS Express を使用して、ユーザファイルのアクセスを伴う API の実装を行ったが、パーカッションの解決が鳴らず。C:\Program Files(x86)\IIS Express\ の直下では、新規のファイル作成は、セキュリティを低下させる方法でしかできないため、あきらめた。そこまでして、ファイルにアップロード結果を反映させなくてはならない訳ではないため。本番環境で、できればよい。
結局は、返却文字列を送信することで、デバッグを取ることにした。結果、API の呼び出しに成功する。

外部からの IIS Express へのアクセスは、ファイヤーウォール並びにホストネーム変換の関係上、簡単にはいかない。
Web ドライバとして、開発マシン (自ホスト) に、下記の html ファイルを書いて、代用した。
curl での試行は無理だった。


<!DOCTYPE html>
<html lang="ja">
<head>
</head>
<body>
<form action="http://localhost:55129/api/values/" method="post">
<button type="submit" value="koneko" name="value">koneko</button>
</form>
</body>
</html>

ここを参考にした