2016-02-10 34 views
0

在AngularJs我可以很容易地發佈數據到一個URL由

這裏
$http.post(url, data) 

數據是一個數組是這樣的:

["test1","test2","test3"] 

我的問題是我怎麼能在C#中做同樣的事情?我想用HttpWebRequest

+1

這是HttpWebRequest的方法,良好的演練:http://stackoverflow.com/questions/4015324/http-request-with-post –

+0

感謝您的答覆,確定這裏的問題是我怎麼能轉換ARRY [「test1」,「test2」,「test3」]發佈數據? –

回答

0

使用ToList您的陣列和FormUrlEncodedContent爲您的文章的要求,請參閱下面

using System.Net.Http; 

data.ToList(); //your data, assuming it is already a well-formed array or data model 

var content = new FormUrlEncodedContent(values); 

var response = await client.PostAsync("http://www.example.com/recepticle.aspx", content); 

var responseString = await response.Content.ReadAsStringAsync(); 
+0

怎麼樣使用HttpWebRequest而不是HttpClient?我怎樣才能做到這一點與HttpWebRequest? –

0

其實我發現自己的答案。這裏

有效載荷可以是一個數組:

VAR請求=(HttpWebRequest的)WebRequest.Create(URL);

 request.ContentType = "application/json"; 
     request.Method = action; 


     JsonSerializerSettings serializerSettings = new JsonSerializerSettings 
     { 
      ContractResolver = new UnderscoreMappingResolver(), 
      Formatting = Formatting.None, 
      NullValueHandling = NullValueHandling.Ignore, 
      Converters = 
       { 
        new IsoDateTimeConverter 
        { 
         DateTimeStyles = DateTimeStyles.RoundtripKind 
        }, 
        new StringEnumConverter 
        { 
         CamelCaseText = true 
        } 
       } 
     }; 

     var json = JsonConvert.SerializeObject(payload, serializerSettings); 
     request.ContentLength = json.Length; 

     Console.Out.Write(request.RequestUri); 

     using (var stream = request.GetRequestStream()) 
     { 
      using (var sw = new StreamWriter(stream)) 
      { 
       sw.Write(json); 
      } 
     } 

     HttpWebResponse response; 

     try 
     { 
      response = request.GetResponse() as HttpWebResponse; 
     } 
     catch (WebException ex) 
     { 
      response = ex.Response as HttpWebResponse; 
     }