2012-08-23 13 views
5

मेरे पास यह कोड है जिसे मैं RestSharp में कनवर्ट करने का प्रयास कर रहा हूं। मैंने स्पष्टता के लिए इसे संक्षिप्त करने के लिए उपयोग ब्लॉक को हटा दिया है।मैं RestSharp में एक POST अनुरोध कैसे भेजूं?

string GetResponse(string url, string data) 
{ 
    var client = new RestClient(url); 
    var request = new RestRequest("", RestSharp.Method.POST); 
    request.AddParameter("application/x-www-form-urlencoded", data); 
    var response = client.Execute(request); 
    return response.Content; 
} 

मैं एक अनुरोध RestSharp का उपयोग कर, क्या application/x-form-urlencoded में एक पोस्ट अनुरोध भेजने के लिए सही प्रारूप पद नहीं कर पा रहे:

using System.IO; 
using System.Net; 
using RestSharp; 

string GetResponse(string url,string data) 
{ 
    var request = (HttpWebRequest)WebRequest.Create(url); 
    request.Method = "POST"; 
    request.ContentType = "application/x-www-form-urlencoded"; 
    var bytes = Encoding.UTF8.GetBytes(data); 
    request.ContentLength = bytes.Length; 
    request.GetRequestStream().Write(bytes, 0, bytes.Length); 
    var response = (HttpWebResponse)request.GetResponse(); 
    var stream = response.GetResponseStream(); 
    if (stream == null) return string.Empty; 
    var reader = new StreamReader(stream); 
    return reader.ReadToEnd(); 
} 

मैं के आदेश के लिए कुछ करने की कोशिश की?

+0

क्या त्रुटि आप देख रहे हैं? – Luxspes

+0

अनुरोध का उपभोग करने वाले जावा सर्वर (जिसका मेरा कोई नियंत्रण नहीं है) मुझे दूसरे अनुरोध के लिए एक शून्य सूचक अपवाद दे रहा है। मूल रूप से इसके परिप्रेक्ष्य से अनुरोध किसी भी तरह से अलग है। मैं डीबग करने का एकमात्र असली तरीका अनुमान लगा रहा हूं कि वायरशर्क में पहले अनुरोध को देखने के लिए और फिर RestSharp संस्करण को वैसे ही व्यवहार करने का प्रयास करें। अन्यथा कुछ त्वरित अंतर्दृष्टि की उम्मीद कर रहा था अन्यथा ... –

+0

यदि आप स्टैकट्रैक के साथ शून्य सूचक अपवाद संदेश साझा करते हैं, तो आपको कुछ सलाह देना संभव हो सकता है – Luxspes

उत्तर

5

तो यह पता चला कि पैरामीटर डेटा स्ट्रिंग में पहले से ही क्रमबद्ध हैं। जबकि मुझे उन्हें मैन्युअल रूप से RestSharp अनुरोध में जोड़ने की आवश्यकता थी।

foreach (var pair in data) 
{ 
    request.AddParameter(pair.Key, pair.Value); 
} 

जहां डेटा एक कुंजी/मान जोड़ी struct

संबंधित मुद्दे