Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从控制器生成http post请求_C#_.net_Asp.net Mvc - Fatal编程技术网

C# 从控制器生成http post请求

C# 从控制器生成http post请求,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,如果这是个愚蠢的问题,请原谅我。我对网络编程不是很有经验。 我正在实现.NETMVC应用程序的支付组件。该组件与外部支付服务交互。支付服务接受以下形式的http post请求 http://somepaymentservice.com/pay.do?MerchantID=xxx&Price=xxx&otherparameters 我知道,通过在视图中添加一个表单,这是非常容易做到的。但是,我不希望我的观点涉及第三方参数。我希望我的视图向我的控制器提交信息,然后控制器生成所需的u

如果这是个愚蠢的问题,请原谅我。我对网络编程不是很有经验。 我正在实现.NETMVC应用程序的支付组件。该组件与外部支付服务交互。支付服务接受以下形式的http post请求

http://somepaymentservice.com/pay.do?MerchantID=xxx&Price=xxx&otherparameters
我知道,通过在视图中添加一个表单,这是非常容易做到的。但是,我不希望我的观点涉及第三方参数。我希望我的视图向我的控制器提交信息,然后控制器生成所需的url,然后发送请求。下面是伪代码

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PayForOrder(OrderForm order)
{
    var url = _paymentService.GetUrlFromOrder(order);
    SendPostRequest(url);
    return View("FinishedPayment");
}  
有可能吗?c#是否具有生成http请求的内置库?
提前谢谢

您将希望使用该类。请确保将Method属性设置为post-here's

当然有一个内置的库来生成http请求。下面是我从VB.NET快速转换到C#的两个有用函数。第一个方法执行post,第二个方法执行get。我希望你觉得它们有用

您需要确保导入System.Net命名空间

public static HttpWebResponse SendPostRequest(string data, string url) 
{

    //Data parameter Example
    //string data = "name=" + value

    HttpWebRequest httpRequest = HttpWebRequest.Create(url);
    httpRequest.Method = "POST";
    httpRequest.ContentType = "application/x-www-form-urlencoded";
    httpRequest.ContentLength = data.Length;

    var streamWriter = new StreamWriter(httpRequest.GetRequestStream());
    streamWriter.Write(data);
    streamWriter.Close();

    return httpRequest.GetResponse();
}

public static HttpWebResponse SendGetRequest(string url) 
{

    HttpWebRequest httpRequest = HttpWebRequest.Create(url);
    httpRequest.Method = "GET";

    return httpRequest.GetResponse();
}

如果ASP.NET发出请求,或者客户机发出请求,这确实会产生影响。 若提供者的文档说明您应该使用一个表单,该表单包含必须由客户端浏览器提交的给定操作,那个么这可能是必要的


在很多情况下,用户(客户端)向提供者发布一些值,在提供者站点输入一些数据,然后再次重定向到您的站点。您不能在服务器端执行此应用程序流。

您能告诉我们您是如何执行此操作的吗?第二个链接已失效