繁体   English   中英

通过HTTPS POST将JSON,多部分/表单数据发送到url(C#)

[英]Send JSON, multipart/form-data via HTTPS POST to url (C#)

我想通过HTTPS POST将JSON,多部分数据发送到C# webservice-url。

JSON:

info  = {
  fullname:"Name sername",
  code:"123465",
  code2:"12346",
  code3:"1234567"
}

如何在C#中将其发送到url?

这是一个例子

public async Task<String> GetData()
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(Statics.Baseurl); 
        //The base Url is the Http Post request url (base) eg: http://www.example.com/
        client.DefaultRequestHeaders.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        Info info = new Info();
        info.fullname = "Name surname";
        info.code = "123465";
        info.code2 = "123465";
        info.code3 = "123465";

        //JsonCOnvert.SerilizeObject() will convert your custom class to JSON
        StringContent content = new StringContent(JsonConvert.SerializeObject(info), Encoding.UTF8, "application/json");

        //the base address already defined in the client
        //This is the remaining part of the address.
        //We are passing the JSON value to the HTTP POST here.
        HttpResponseMessage Res = await client.PostAsync("api/Worker/GetDetails", content); 

        if (Res.IsSuccessStatusCode)
        {
             var response = Res.Content.ReadAsStringAsync().Result;
             return response;
        }
        else
        {
             return "No_Data"; 
        }
     }
}

在上面的示例中,这里有一个Info类,可以如下定义。

public class Info
{
   public String fullname { get; set; }
   public String code { get; set; }
   public String code2 { get; set; }
   public String code3 { get; set; }
}

注意事项

  1. HttpClient类可以在System.Net.Http命名空间下找到
  2. asp.net Web表单中使用RegisterAsyncTask触发async方法。 有关更多详细信息,请参见此处

尝试一下它的工作原理。

var client = new RestClient("http://www.google.com");
var request = new RestRequest(Method.POST);
request.AddHeader("Postman-Token", "7ef33df4-9c36-4e92-9390-8fd17274d32d");
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("content-type", "multipart/form-data; boundary=---- 
WebKitFormBoundary7MA4YWxkTrZu0gW");

request.AddParameter("multipart/form-data; boundary=---- 
WebKitFormBoundary7MA4YWxkTrZu0gW", "------ 
WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; 
name=\"\"\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", 
ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM