将Json Data发布到Rest API

时间:2013-11-27 11:45:27

标签: rest windows-phone-7 windows-8 windows-phone-8 windows-phone

我正在开发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

错误是..
enter image description here

由于

1 个答案:

答案 0 :(得分:0)

在我看来,您使用的URI存在问题。您发布的错误消息显示服务器返回“未找到”标题。也许它只是不太正确?我没有在您发布的代码中看到确切的URI。 string url="myurl";看起来不像您要使用的网址。

这也是为什么你无法使用此行访问响应流的原因:MessageBox.Show(e.Result);。没有有效的回应。这在此处记录:http://msdn.microsoft.com/de-de/library/system.net.uploadstringcompletedeventargs.result%28v=vs.110%29.aspx

您可以通过查看Errorhttp://msdn.microsoft.com/de-de/library/system.net.uploadstringcompletedeventargs%28v=vs.110%29.aspx)的UploadStringCompletedEventArgs属性来确定是否发生了此类错误。