9
votes

Générer une demande de courrier http à partir du contrôleur

Pardonnez-moi s'il s'agit d'une question stupide. Je ne suis pas très expérimenté avec la programmation Web. Je mettez en place le composant de paiement de mon application MVC .NET. Le composant interagit avec un service de paiement externe. Le service de paiement accepte la demande de post HTTP dans le formulaire suivant

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PayForOrder(OrderForm order)
{
    var url = _paymentService.GetUrlFromOrder(order);
    SendPostRequest(url);
    return View("FinishedPayment");
}  


1 commentaires

Pouvez-vous nous dire comment vous avez fait cela?


3 Réponses :


8
votes

Vous voudrez utiliser le httpwebrequest classer. Assurez-vous de définir la propriété méthode pour poster - voici un exemple .


1 commentaires

Le deuxième lien est mort



5
votes

Il y a certainement une bibliothèque intégrée pour générer des demandes HTTP. Vous trouverez ci-dessous deux fonctions utiles que j'ai rapidement converties de VB.NET en C #. La première méthode effectue un poste que la seconde effectue un get. J'espère que vous les trouverez utile.

Vous voulez vous assurer d'importer l'espace de noms System.NET. P>

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();
}


0 commentaires

2
votes

Il fait vraiment une différence si ASP.NET fait une demande ou que le client fait une demande. Si la documentation du fournisseur dit que vous devez utiliser un formulaire avec l'action donnée qui doit être soumise par le navigateur client, cela pourrait être nécessaire.

Dans de nombreux cas, l'utilisateur (le client) publie certaines valeurs au fournisseur, entre dans certaines données du site des fournisseurs, puis redirigé sur votre site. Vous ne pouvez pas faire ce fichier application sur le serveride.


0 commentaires