在API中发布Json数据

时间:2013-11-22 06:36:59

标签: json post windows-phone-8 windows-phone webclient

我正在开发WP8应用程序,我想知道我的帖子方法是否正确,因为我无法在url中发布我的数据,它会产生异常..

我的班级

public class Register     
    {

        public int id { get; set; }
        public string password_reset_hash { get; set; }
        public string temp_password { get; set; }
        public bool remember_me { get; set; }
        public string activation_hash { get; set; }
        public string ip_address { get; set; }
        public bool status { get; set; }
        public bool activated { get; set; }
        public string permissions { get; set; }
        public DateTime last_login { get; set; }
        public DateTime created_at { get; set; }
        public DateTime updated_at { get; set; }
        public string email { get; set; }
        public string password { get; set; }
        public string conformpassword { get; set; }
        public string username { get; set; }      
    }

我的代码

 public  void btn_register_click(object sender, RoutedEventArgs e)
        {
            string url="myurl";
            Register res=new Register();// my class
            res.email = txt_email.Text;
            res.password = txt_password.Text;
            res.conformpassword = txt_conf_psswrd.Text;
            res.username = txt_username.Text;
            res.created_at = DateTime.Now;
            res.last_login = DateTime.Now;
            res.updated_at = DateTime.Now;
            res.status = true;

            json = JsonConvert.SerializeObject(res);
            WebClient wc = new WebClient();
            var URI = new Uri(url);  
            wc.Headers["Content-Type"] = "application/json";                
            wc.Headers["ACCEPT"] = "application/json";
            wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);
            wc.UploadStringAsync(URI, "POST", json);             

        }

        private void wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
        {
            try
            {
                MessageBox.Show(e.Result); 
                //e.result fetches you the response against your POST request.         

            }

            catch (Exception exc)
            {
                MessageBox.Show(exc.ToString()); //i'm getting error here..
            }
        }

我收到错误

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该使用 HttpClient 。有点像:

var client = new HttpClient();
client.SendAsync(<url>, data);

修改

你是否存在“myurl”的API?

答案 1 :(得分:1)

  1. 您应该使用HttpClient或RestSharp(http://www.nuget.org/packages/RestSharp/)。
  2. 如果基于.net的api使用jsonp或使用带有EnableCors的web api 2