用C#的Windows Form发送POST请求

4

目前我通过curl命令将信息传递给Web API,如下所示:

curl -d 'info={ "EmployeeID": [ "1234567", "7654321" ], "Salary": true, "BonusPercentage": 10}' http://example.com/xyz/php/api/createjob.php

这将会返回另一个URL,用于在那里发布所有信息的API:

http://example.com/xyz#newjobapi:id=19

我正在努力通过C#Windows表单复制此过程,在其中用户将输入所需信息并提交后,应获得返回的URL。

我已经创建了用户输入此信息的界面。但是,我不知道如何将此信息发布到Web API并获取生成的URL。

是否有任何库可供使用以通过Windows Form复制上述curl过程?


你可以使用HttpClient类。 - Vijay Raheja
1个回答

8
        HttpWebRequest webRequest;

        string requestParams = ""; //format information you need to pass into that string ('info={ "EmployeeID": [ "1234567", "7654321" ], "Salary": true, "BonusPercentage": 10}');

                webRequest = (HttpWebRequest)WebRequest.Create("http://example.com/xyz/php/api/createjob.php");

                webRequest.Method = "POST";
                webRequest.ContentType = "application/json";

                byte[] byteArray = Encoding.UTF8.GetBytes(requestParams);
                webRequest.ContentLength = byteArray.Length;
                using (Stream requestStream = webRequest.GetRequestStream())
                {
                    requestStream.Write(byteArray, 0, byteArray.Length);
                }

                // Get the response.
                using (WebResponse response = webRequest.GetResponse())
                {
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        StreamReader rdr = new StreamReader(responseStream, Encoding.UTF8);
                        string Json = rdr.ReadToEnd(); // response from server

                    }
                }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接