GET

using(WebClient webClient = new WebClient())
{
    webClient.Encoding = Encoding.UTF8;
    webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    var body = webClient.DownloadString("http://jsonplaceholder.typicode.com/posts");
    body.Dump();
}

POST

using (WebClient webClient = new WebClient())
{
    webClient.Encoding = Encoding.UTF8;
    webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    webClient.Headers.Add("authorization", "token {apitoken}");
    PostData postData = new PostData() { userId = 1123456, title = "yowko", body = "yowko test body 中文" };
    string json = JsonConvert.SerializeObject(postData);
    var result = webClient.UploadString("https://jsonbin.org/yowko/test", json);
    result.Dump();
}


PUT 

using (WebClient webClient = new WebClient())
{
    webClient.Encoding = Encoding.UTF8;
    webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    webClient.Headers.Add("authorization", "token {apitoken}");
    var result = webClient.UploadString("https://jsonbin.org/yowko/test/_perms","PUT",     "");
    result.Dump();
}


DELETE

using (WebClient webClient = new WebClient())
{
    webClient.Encoding = Encoding.UTF8;
    webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    webClient.Headers.Add("authorization", "token {apitoken}");
    var result = webClient.UploadString("https://jsonbin.org/yowko/test/_perms","DELETE", "");
    result.Dump();
}

PATCH

using (WebClient webClient = new WebClient())
{
    webClient.Encoding = Encoding.UTF8;
    webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
    webClient.Headers.Add("authorization", "token {api token}");
    PostData postData = new PostData() { title = "yowko 中文", body = "yowko body 中文"     };
    string json = JsonConvert.SerializeObject(postData);
    var result = webClient.UploadString("https://jsonbin.org/yowko/test","PATCH", json);
    result.Dump();
}

proxy

using (WebClient webClient = new WebClient())
{

    webClient.Encoding = Encoding.UTF8;

    webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");

    webClient.Headers.Add("authorization", "token {api token}");

    string proxyAddress = "http://127.0.0.1:8888";

    WebProxy myProxy = new WebProxy(new Uri(proxyAddress));

    myProxy.Credentials = new NetworkCredential("{username}", "{password}");

    webClient.Proxy = myProxy;

    PostData postData = new PostData() { userId=1, title = "yowko1", body = "yowko test     body 中文" };

    string json = JsonConvert.SerializeObject(postData);

    var result = webClient.UploadString("https://jsonbin.org/yowko/test", json);

    result.Dump();
}