调用REST的最简单方法

时间:2017-05-19 16:27:19

标签: c#

我从jscript调用REST服务工作正常:

post('/MySite/myFunct', { ID:22 })

如何以大多数原生c#方式从C#进行此调用?

UPD:

我也需要HTTPS解决方案。

UPD:

我需要使用cookies

2 个答案:

答案 0 :(得分:7)

cell.plusButton.tag = indexPath.section
cell.plusButton.tag = indexPath.row

答案 1 :(得分:1)

旧的传统方式是使用HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/api/Test/TestPostData"); request.Method = "POST"; SampleModel model = new SampleModel(); model.PostData = "Test"; request.ContentType = "application/json"; JavaScriptSerializer serializer = new JavaScriptSerializer(); using (var sw = new StreamWriter(request.GetRequestStream())) { string json = serializer.Serialize(model); sw.Write(json); sw.Flush(); } HttpWebResponse response = (HttpWebResponse)request.GetResponse();

using RestSharp;
using RestTest.Model;
private void button1_Click(object sender, EventArgs e)
{
    var client = new RestClient();
    var request = new RestRequest();
    request.BaseUrl = "http://carma.org";
    request.Action = "api/1.1/searchPlants";
    request.AddParameter("location", 4338);
    request.AddParameter("limit", 10);
    request.AddParameter("color", "red");
    request.AddParameter("format", "xml");
    request.ResponseFormat = ResponseFormat.Xml;
    var plants = client.Execute<PowerPlantsDTO>(request);
    MessageBox.Show(plants.Count.ToString());
} 

除此之外,我更喜欢nuget中的Internal storage

一个简单的帖子请求示例就像这样

public void Create(Product product)
{
  var request = new RestRequest("Products", Method.POST); < ----- Use Method.PUT for update
  request.AddJsonBody(product);
  client.Execute(request);
}

您可以直接从呼叫中使用HTTP Verbs

一个帖子示例:

public void Delete(int id)
{
  var request = new RestRequest("Products/" + id, Method.DELETE);
  client.Execute(request);
}

删除示例

request.AddHeader("data", "test");

用于在请求中添加标题

private RestClient client = new RestClient("http://localhost:8080/api/");
RestRequest request = new RestRequest("Products", Method.GET);

RestResponse<YourDataModel> response = client.Execute<YourDataModel>(request);
var name = response.Data.Name;

获取请求

String