我试图将一个帖子变量发送到我重定向到的网址。
我目前正在使用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。,我不想使用表单发送帖子变量。
答案 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重定向,特别是如果这是一个临时解决方案。
答案 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它很快但是对于基本操作你可以使用这个