程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何发出HTTP POST Web请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何发出http POST Web请求?

开发过程中遇到如何发出http POST Web请求的问题如何解决?下面主要结合日常开发的经验,给出你关于如何发出http POST Web请求的解决方法建议,希望对你解决如何发出http POST Web请求有所启发或帮助;

有几种执行http GETPOST请求的方法:

方法A:httpClIEnt(首选)

可用:.NET Framework 4.5+.NET Standard 1.1+.NET Core 1.0+

目前,它是首选方法,并且具有异步性和高性能。在大多数情况下,请使用内置版本,但对于非常旧的平台,则提供了NuGet软件包。

using System.Net.http;

设定

建议httpClIEnt在应用程序的生命周期中实例化一个实例,并共享它,除非您有特殊原因不这样做。

private static Readonly httpClIEnt clIEnt = new httpClIEnt();

请参阅httpClientFactory以获取依赖项注入解决方案。

  • POST

    var values = new Dictionary<String, String>
    

    { { “thing1”, “Hello” }, { “thing2”, “world” } };

    var content = new FormUrlEncodedContent(values);

    var response = await clIEnt.PostAsync("http://www.example.com/recepticle.aspx”, content);

    var responseString = await response.Content.ReadAsStringAsync();

  • GET

    var responseString = await clIEnt.GetStringAsync("http://www.example.com/recepticle.aspx");
    

方法B:第三方库

  • POST
     var clIEnt = new RestClIEnt("http://example.com");
    

    // clIEnt.Authenticator = new httpBasicAuthenticator(username, password); var request = new Restrequest(“resource/{ID}); request.AddParameter(“thing1”, “Hello”); request.AddParameter(“thing2”, “world”); request.Addheader(“header”, “value”); request.Addfile(“file”, path); var response = clIEnt.Post(request); var content = response.Content; // Raw content as String var response2 = clIEnt.Post(request); var name = response2.Data.name;

这是一个更新的库,具有流畅的API,测试助手,在后台使用httpClIEnt且可移植。可通过NuGet获得。

    using Flurl.http;
  • POST

    var responseString = await "http://www.example.com/recepticle.aspx"
    .PosturlEncodedAsync(new { thing1 = "Hello", thing2 = "world" })
    .ReceiveString();
    
  • GET

    var responseString = await "http://www.example.com/recepticle.aspx"
    .GetStringAsync();
    

方法C:httpWebrequest(不建议用于新工作)

可用:.NET Framework 1.1+.NET Standard 2.0+.NET Core 1.0+。在.NET Core中,它主要是为了兼容性-它可以包装httpClIEnt,性能较低且不会获得新功能。

using System.Net;
using System.Text;  // For class EnCoding
using System.IO;    // For StreamReader
  • POST

    var request = (httpWebrequest)Webrequest.Create("http://www.example.com/recepticle.aspx");
    

    var postData = “thing1=” + Uri.EscapeDataString(“Hello”); postData += “&thing2=” + Uri.EscapeDataString(“world”); var data = EnCoding.ASCII.GetBytes(postData);

    request.Method = “POST”; request.ContentType = “application/x-www-form-urlencoded”; request.ContentLength = data.Length;

    using (var stream = request.GetrequestStream()) { stream.Write(data, 0, data.Length); }

    var response = (httpWebResponsE)request.GetResponse();

    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

  • GET

    var request = (httpWebrequest)Webrequest.Create("http://www.example.com/recepticle.aspx");
    

    var response = (httpWebResponsE)request.GetResponse();

    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

方法D:WebClIEnt(不建议用于新工作)

这是一个包装httpWebrequest。与比较httpClient

可在:.NET Framework 1.1+NET Standard 2.0+.NET Core 2.0+

using System.Net;
using System.Collections.Specialized;
  • POST

    using (var clIEnt = new WebClIEnt())
    

    { var values = new nameValueCollection(); values[“thing1”] = “Hello”; values[“thing2”] = “world”;

    var response = clIEnt.UploadValues("http://www.example.com/recepticle.aspx", values);
    
    var responseString = EnCoding.Default.GetString(responsE);
    

    }

  • GET

    using (var clIEnt = new WebClIEnt())
    

    { var responseString = clIEnt.DownloadString("http://www.example.com/recepticle.aspx”); }

解决方法

我可以GET提出请求,但是我不知道如何提出POST请求。

大佬总结

以上是大佬教程为你收集整理的如何发出HTTP POST Web请求全部内容,希望文章能够帮你解决如何发出HTTP POST Web请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。