2009-11-10 13 views
8

से http पोस्ट अनुरोध जेनरेट करें यदि यह एक बेवकूफ सवाल है तो मुझे क्षमा करें। मैं वेब प्रोग्रामिंग के साथ बहुत अनुभवी नहीं हूँ। मैं अपने .NET एमवीसी एप्लिकेशन के भुगतान घटक को कार्यान्वित कर रहा हूं। घटक बाहरी भुगतान सेवा के साथ बातचीत करता है। भुगतान सेवा निम्नलिखित फॉर्म में http12 अनुरोध स्वीकार करती हैनियंत्रक

http://somepaymentservice.com/pay.do?MerchantID=xxx&Price=xxx&otherparameters 

मुझे पता है कि व्यू में एक फॉर्म जोड़कर यह करना आसान है। हालांकि, मैं नहीं चाहता कि मेरे विचार तीसरे पक्ष के मानकों से निपटें। मैं अपने कंट्रोलर को जानकारी जमा करना चाहता हूं, तो नियंत्रक आवश्यक यूआरएल उत्पन्न करता है और फिर अनुरोध भेजता है। छद्म कोड निम्नलिखित है।

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

क्या ऐसा करना संभव है? सी # में http अनुरोध उत्पन्न करने के लिए अंतर्निहित लाइब्रेरी है? अग्रिम धन्यवाद।

+0

क्या आप हमें बता सकते हैं कि आपने यह कैसे किया? – Raha

+0

मैंने एंडी ने सुझाव दिया था। –

उत्तर

6

आप HttpWebRequest कक्षा का उपयोग करना चाहेंगे। विधि संपत्ति को पोस्ट करने के लिए सेट करना सुनिश्चित करें - यहां an example है।

+0

धन्यवाद। आपने मेरा दिन बचाया –

3

निश्चित रूप से http अनुरोध उत्पन्न करने के लिए लाइब्रेरी में निर्मित है। नीचे दो सहायक कार्य हैं जिन्हें मैंने तुरंत VB.NET से C# में परिवर्तित कर दिया। पहली विधि एक पोस्ट करता है जो दूसरा मिलता है। उम्मीद है आप इनको उपयोगी पाएंगे।

आप सिस्टम.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(); 
} 
2

अगर एएसपी.NET अनुरोध करता है या ग्राहक अनुरोध करता है तो यह वास्तव में एक फर्क पड़ता है। यदि प्रदाता का प्रलेखन कहता है कि आपको दिए गए क्रिया के साथ एक फॉर्म का उपयोग करना चाहिए जिसे क्लाइंट ब्राउज़र द्वारा सबमिट किया जाना है तो यह आवश्यक हो सकता है।

कई मामलों में उपयोगकर्ता (क्लाइंट) प्रदाता को कुछ मान पोस्ट करता है, प्रदाता साइट पर कुछ डेटा दर्ज करता है और फिर आपकी साइट पर फिर से रीडायरेक्ट हो जाता है। आप सर्वरसाइड पर यह एप्लिकेशनफ्लो नहीं कर सकते हैं।