gpt4 book ai didi

c# - 通过 C# GET 和 POST 到 ASP.NET MVC

转载 作者:可可西里 更新时间:2023-11-01 14:52:01 24 4
gpt4 key购买 nike

我有一个用 C# 编写的 Windows 应用程序。此应用程序将部署到我用户的桌面。它将与已经创建的后端交互。后端是用 ASP.NET MVC 3 编写的。它公开了许多 GET 和 POST 操作,如下所示:

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult GetItem(string id, string caller)
{
// Do stuff
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveItem(string p1, string p2, string p3)
{
// Do stuff
}

我团队中的 Web 开发人员通过 JQuery 成功地与这些操作进行了交互。所以我知道它们有效。但我需要弄清楚如何从我的 Windows C# 应用程序与它们交互。我正在使用 WebClient,但遇到了一些性能问题,所以我被咨询使用 WebRequest 对象。为了诚实地尝试这一点,我尝试了以下方法:

WebRequest request = HttpWebRequest.Create("http://www.myapp.com/actions/AddItem"); 
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.BeginGetResponse(new AsyncCallback(AddItem_Completed), request);

我的问题是,我不确定如何将数据(参数值)实际发送回我的端点。如何将参数值发送回我的 GET 和 POST 操作?有人可以帮我吗?谢谢!

最佳答案

一种方法是将输入写入请求流。您需要将输入序列化为字节数组 请看下面的示例代码

        string requestXml = "someinputxml";
byte[] bytes = Encoding.UTF8.GetBytes(requestXml);

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "application/xml";

using (var requestStream = request.GetRequestStream())
{
requestStream.Write(bytes, 0, bytes.Length);
}

using (var response = (HttpWebResponse)request.GetResponse())
{
statusCode = response.StatusCode;

if (statusCode == HttpStatusCode.OK)
{
responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
}
}

关于c# - 通过 C# GET 和 POST 到 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com