public static async Task<string> GetData(string url, string data)
{
UriBuilder fullUri = new UriBuilder(url);
if (!string.IsNullOrEmpty(data))
fullUri.Query = data;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync(new Uri(url), /*expects HttpContent*/);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
PostAsync
अन्य पैरामीटर है कि जरूरतों को होने के लिए ले जाता है HttpContent
।
मैं कैसे सेट अप HttpContent
करूं? कहीं भी कोई डॉक्यूमेंटेशन नहीं है जो विंडोज फोन 8 के लिए काम करता है।
अगर मैं करता हूँ GetAsync
, यह महान काम करता है! लेकिन यह कुंजी = "bla", कुछ = "yay" की सामग्री के साथ POST होना चाहिए
// संपादित करें
उत्तर के लिए बहुत बहुत धन्यवाद ... यह अच्छी तरह से काम करता है, लेकिन अभी भी यहां कुछ अनिश्चित हैं:
public static async Task<string> GetData(string url, string data)
{
data = "test=something";
HttpClient client = new HttpClient();
StringContent queryString = new StringContent(data);
HttpResponseMessage response = await client.PostAsync(new Uri(url), queryString );
//response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
डेटा "परीक्षण = कुछ" जो मैंने ग्रहण किया है, पोस्ट डेटा "टेस्ट" के रूप में एपीआई की तरफ ले जाएगा, जाहिर है यह नहीं करता है। एक अन्य मामले में, मुझे पोस्ट डेटा के माध्यम से संपूर्ण ऑब्जेक्ट्स / सरणियों को पोस्ट करने की आवश्यकता हो सकती है, इसलिए मुझे लगता है कि ऐसा करने के लिए json सबसे अच्छा होगा। कैसे मैं के माध्यम से पोस्ट डेटा मिलता है पर कोई विचार?
शायद कुछ इस तरह:
class SomeSubData
{
public string line1 { get; set; }
public string line2 { get; set; }
}
class PostData
{
public string test { get; set; }
public SomeSubData lines { get; set; }
}
PostData data = new PostData {
test = "something",
lines = new SomeSubData {
line1 = "a line",
line2 = "a second line"
}
}
StringContent queryString = new StringContent(data); // But obviously that won't work