发送和接收帖子变量

时间:2016-03-11 11:24:37

标签: c# asp.net post get

我试图将一个帖子变量发送到我重定向到的网址。

我目前正在使用Get方法并将其发送如下:

// Redirect to page with url parameter (GET)
Response.Redirect("web pages/livestream.aspx?address="+ ((Hardwarerecorders.Device)devices[arrayIndex]).streamAddress);

并像这样检索它:

// Get the url parameter here
string address = Request.QueryString["address"];

如何将代码转换为使用POST方法?

B.T.W。,我不想使用表单发送帖子变量。

2 个答案:

答案 0 :(得分:1)

使用 HttpClient

发送POST查询:

using System.Net.Http;

public string sendPostRequest(string URI, dynamic content)
    {
        var client = new HttpClient();
        client.BaseAddress = new Uri("http://yourBaseAddress");

        var valuesAsJson = JsonConvert.SerializeObject(content);
        HttpContent contentPost = new StringContent(valuesAsJson, Encoding.UTF8, "application/json");

        var result = client.PostAsync(URI, contentPost).Result;
        return result.Content.ReadAsStringAsync().Result;
    }

其中' client.PostAsync(URI,contentPost) '是将内容发送到其他网站的位置。

在另一个网站上,需要建立一个API控制器来接收结果,如下所示:

[HttpPost]
    [Route("yourURI")]
    public void receivePost([FromBody]dynamic myObject)
    {
        //..
    }

但是,您可能还需要考虑使用307重定向,特别是如果这是一个临时解决方案。

https://softwareengineering.stackexchange.com/a/99966

答案 1 :(得分:1)

using System.Net.Http;

POST

using (var client = new HttpClient())
{
    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

using (var client = new HttpClient())
{
    var responseString = client.GetStringAsync("http://www.example.com/recepticle.aspx");
}

我的个人选择是Restsharp它很快但是对于基本操作你可以使用这个