簡體   English   中英

如何使用Json將數據從Win表單發送到Web?

[英]How to send data from win forms to web using Json?

我無法正確傳遞價值。 該代碼已成功執行,但空值到達了指定的頁面(“ http:// ........” )。

Product objProduct = new Product();
objProduct.id = "1";
objProduct.name = "Sana";
string json = JsonConvert.SerializeObject(objProduct);

var baseAddress = "http://..................";

var http = (HttpWebRequest)WebRequest.Create(new Uri(baseAddress));
http.Accept = "application/json";
http.ContentType = "application/json";
http.Method = "POST";

string parsedContent = json;
ASCIIEncoding encoding = new ASCIIEncoding();
Byte[] bytes = encoding.GetBytes(parsedContent);

Stream newStream = http.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();

var response = http.GetResponse();

var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
var content = sr.ReadToEnd();

可以使用Microsoft.Net.Http

using (var client = new HttpClient()) 
{
    var objProduct = new Product();
    objProduct.id = "1";
    objProduct.name = "Sana";
    string json = JsonConvert.SerializeObject(objProduct);
    var content = new StringContent(json);
    var result = await client.PostAsync("http://localhost/product/", content);
    var responseAsString = await result.Content.ReadAsStringAsync();
}

我用來發出請求的另一個簡單解決方案是WebClient ,您的代碼可以像這樣

  Product objProduct = new Product();
  objProduct.id = "1";
  objProduct.name = "Sana";
  string json = JsonConvert.SerializeObject(objProduct);
  var baseAddress = "http://..................";

  var respond = "";

  //Post request 
  using (WebClient wc = new WebClient())
  {
    wc.Encoding = Encoding.UTF8;
    respond =  wc.UploadString(baseAddress, json);
  }

這里的response變量將返回API的結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM