C#创建HTTP POST Web请求

时间:2019-03-13 06:59:47

标签: c# post service swagger

大家好,我的网址是http://somehost/swagger/index.html 那里的end方法如图所示: enter image description here

我正在尝试创建引用post方法之一的HTTP POST Web请求。

using System;
using System.Collections.Generic;
using System.Net.Http;
namespace SwaggerConsoleAPP
{
    class Program
    {  
        static  void Main(string[] args)
        {
            postRequest("http://somehost/api/Referral/GetReferralsByPersonalIdNumber");
                Console.ReadKey();
        }

        async  static void postRequest (string url){
            IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>() {
                new KeyValuePair<string, string>("1133221221","5642")

            };
            HttpContent q = new FormUrlEncodedContent(queries);
            using (HttpClient client = new HttpClient())
            {
                using (HttpResponseMessage responce = await client.PostAsync(url,q))
                 {
                    using (HttpContent content = responce.Content)
                    {
                        string mycontent = await content.ReadAsStringAsync();

                        Console.WriteLine(mycontent);
                    }
                 }
            }
        }
}
    }

这是控制台应用程序,但控制台写入错误:

  

{“”:[“输入无效。”]}

这是方法的模型 enter image description here

有帮助吗?

1 个答案:

答案 0 :(得分:0)

我认为,键值对是造成此问题的原因。

API期望personalIDNumberpharmacyID作为两个单独的参数。

最简单的解决方案是只创建具有以下两个属性的类:

public class InputFields
{
    public string personalIDNumber{get;set;}
    public string pharmacyId{get;set;}
}

只要您的API将此类型的模式作为输入参数,此方法就起作用。

请注意,在发布后的HTTP正文中发送两个参数,您可能需要另外编码as mentioned here.

希望这会有所帮助。