目標:
- NuGetを使ってRestSharpをインストールする
- RestSharpを使ってHTTP POSTする
Monoをインストール
自分はArch Linuxなので
pacman -S mono
でインストール。他のディストロの場合はyum
か何かで探してみてください。
NuGetをインストールする
wget --no-check-certificate https://nuget.org/nuget.exe
mozroots --import --machine --sync
certmgr -ssl -m https://go.microsoft.com
certmgr -ssl -m https://nugetgallery.blob.core.windows.net
certmgr -ssl -m https://nuget.org
途中何か聞かれるのでyes
と入力。
こちらを参考にさせていただいた。
http://symfoware.blog68.fc2.com/blog-entry-1750.html
※mozrootsとcertmgrはmonoパッケージに含まれるコマンド
NuGetでRestSharpをGET
mono nuget.exe install RestSharp
カレントディレクトリの下にRestSharp.105.2.3
がダウンロードされた。
DLLへのパスを通す
export MONO_PATH=./RestSharp.105.2.3/lib/net452
コードを書く
Test.cs
using System;
using RestSharp;
class Test
{
public static void Main()
{
var client = new RestClient("http://httpbin.org");
var request = new RestRequest("/post", Method.POST);
request.AddParameter("hoge", "123"); // adds to POST or URL querystring based on Method
request.AddParameter("sage", "456"); // adds to POST or URL querystring based on Method
// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
Console.WriteLine(content);
}
}
RestSharpの使い方についてはこちら:
http://restsharp.org/
ビルドして実行
$ mcs -reference:./RestSharp.105.2.3/lib/net46/RestSharp.dll Test.cs
### ./Test.exe でも実行できる
$ mono Test.exe
{
"args": {},
"data": "",
"files": {},
"form": {
"hoge": "123",
"sage": "456"
},
"headers": {
"Accept": "application/json, application/xml, text/json, text/x-json, text/javascript, text/xml",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "17",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "RestSharp/105.2.3.0"
},
"json": null,
"url": "http://httpbin.org/post"
}
※Test.exe
とRestSharp.dll
を同じディレクトリに置いておけばMONO_PATH
はセットしなくてもいい模様
配布時の推奨ディレクトリ構造がここに書いてある:
http://www.mono-project.com/docs/getting-started/application-deployment/
REPLを使う
$ csharp
Mono C# Shell, type "help;" for help
Enter statements below.
csharp> DateTime.Now
2016/09/17 12:30:35
csharp>
補完も効くので便利。