আমি টুইটার থেকে ওআউথের মাধ্যমে এক্সএমএল টানছি।
আমি http://twitter.com/account/verify_credentials.xML- তে একটি অনুরোধ করছি , যা নিম্নলিখিত এক্সএমএলটি প্রদান করে:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id>16434938</id>
<name>Lloyd Sparkes</name>
<screen_name>lloydsparkes</screen_name>
<location>Hockley, Essex, UK</location>
<description>Student</description>
<profile_image_url>http://a3.twimg.com/profile_images/351849613/twitterProfilePhoto_normal.jpg</profile_image_url>
<url>http://www.lloydsparkes.co.uk</url>
<protected>false</protected>
<followers_count>115</followers_count>
<profile_background_color>9fdaf4</profile_background_color>
<profile_text_color>000000</profile_text_color>
<profile_link_color>220f7b</profile_link_color>
<profile_sidebar_fill_color>FFF7CC</profile_sidebar_fill_color>
<profile_sidebar_border_color>F2E195</profile_sidebar_border_color>
<friends_count>87</friends_count>
<created_at>Wed Sep 24 14:26:09 +0000 2008</created_at>
<favourites_count>0</favourites_count>
<utc_offset>0</utc_offset>
<time_zone>London</time_zone>
<profile_background_image_url>http://s.twimg.com/a/1255366924/images/themes/theme12/bg.gif</profile_background_image_url>
<profile_background_tile>false</profile_background_tile>
<statuses_count>1965</statuses_count>
<notifications>false</notifications>
<geo_enabled>false</geo_enabled>
<verified>false</verified>
<following>false</following>
<status>
<created_at>Mon Oct 12 19:23:47 +0000 2009</created_at>
<id>4815268670</id>
<text>» @alexmuller your kidding? it should all be "black tie" dress code</text>
<source><a href="http://code.google.com/p/wittytwitter/" rel="nofollow">Witty</a></source>
<truncated>false</truncated>
<in_reply_to_status_id>4815131457</in_reply_to_status_id>
<in_reply_to_user_id>8645442</in_reply_to_user_id>
<favorited>false</favorited>
<in_reply_to_screen_name>alexmuller</in_reply_to_screen_name>
<geo/>
</status>
</user>
আমি নিম্নলিখিত কোডটি ডিসেরায়ালাইজ করতে ব্যবহার করছি:
public User VerifyCredentials()
{
string url = "http://twitter.com/account/verify_credentials.xml";
string xml = _oauth.oAuthWebRequestAsString(oAuthTwitter.Method.GET, url, null);
XmlSerializer xs = new XmlSerializer(typeof(User),"");
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xml));
return (User)xs.Deserialize(ms);
}
এবং আমার User
ক্লাসের জন্য নিম্নলিখিতগুলি রয়েছে :
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class User
{
[XmlElement(ElementName = "id")]
public long Id { get; set; }
[XmlElement(ElementName = "name")]
public string Name { get; set; }
[XmlElement(ElementName = "screen_name")]
public string ScreenName { get; set; }
[XmlElement(ElementName = "location")]
public string Location { get; set; }
[XmlElement(ElementName = "description")]
public string Description { get; set; }
[XmlElement(ElementName = "profile_image_url")]
public string ProfileImageUrl { get; set; }
[XmlElement(ElementName = "url")]
public string Url { get; set; }
[XmlElement(ElementName = "protected")]
public bool Protected { get; set; }
[XmlElement(ElementName = "followers_count")]
public int FollowerCount { get; set; }
[XmlElement(ElementName = "profile_background_color")]
public string ProfileBackgroundColor { get; set; }
[XmlElement(ElementName = "profile_text_color")]
public string ProfileTextColor { get; set; }
[XmlElement(ElementName = "profile_link_color")]
public string ProfileLinkColor { get; set; }
[XmlElement(ElementName = "profile_sidebar_fill_color")]
public string ProfileSidebarFillColor { get; set; }
[XmlElement(ElementName = "profile_sidebar_border_color")]
public string ProfileSidebarBorderColor { get; set; }
[XmlElement(ElementName = "friends_count")]
public int FriendsCount { get; set; }
[XmlElement(ElementName = "created_at")]
public string CreatedAt { get; set; }
[XmlElement(ElementName = "favourties_count")]
public int FavouritesCount { get; set; }
[XmlElement(ElementName = "utc_offset")]
public int UtcOffset { get; set; }
[XmlElement(ElementName = "time_zone")]
public string Timezone { get; set; }
[XmlElement(ElementName = "profile_background_image_url")]
public string ProfileBackgroundImageUrl { get; set; }
[XmlElement(ElementName = "profile_background_tile")]
public bool ProfileBackgroundTile { get; set; }
[XmlElement(ElementName = "statuese_count")]
public int StatusesCount { get; set; }
[XmlElement(ElementName = "notifications")]
public string Notifications { get; set; }
[XmlElement(ElementName = "geo_enabled")]
public bool GeoEnabled { get; set; }
[XmlElement(ElementName = "Verified")]
public bool Verified { get; set; }
[XmlElement(ElementName = "following")]
public string Following { get; set; }
[XmlElement(ElementName = "status", IsNullable=true)]
public Status CurrentStatus { get; set; }
}
কিন্তু যখন এটি উপরের এক্সএমএলকে ডিসরিয়ালাইজ করছে তখন অ্যাপ্লিকেশনটি নিম্নলিখিতটি ছুঁড়ে ফেলেছে:
$ ব্যতিক্রম {"এক্সএমএল ডকুমেন্টে একটি ত্রুটি রয়েছে (2, 2)"} সিস্টেম.অগ্রহ {সিস্টেম.অনুষ্ঠানিক অপারেশন এক্সেক্সশন}
অভ্যন্তরীণ ধারণা {"<ব্যবহারকারীর xMLns = ''> প্রত্যাশিত ছিল না" "। সিস্টেম.এক্সেপশন {সিস্টেম.অনুদ্দীপক অপসারণ}
এখন আমি চারপাশে অনুসন্ধান করেছি এবং আমি যে সর্বোত্তম সমাধানটি খুঁজে পেতে পারি তা হ'ল সিরিয়ালাইজারে ফাঁকা নেমস্পেস যুক্ত করা যখন আপনি বিষয়বস্তুটি সিরিয়াল করবেন, তবে আমি এটি সিরিয়াল করছি না তাই আমি পারছি না।
আমার কাছে স্ট্যাটাসগুলি পাওয়ার জন্য কিছু কোডও রয়েছে, যা সূক্ষ্মভাবে কাজ করে।
তাহলে কেউ আমাকে ব্যাখ্যা করতে পারে যে ত্রুটি কেন ঘটছে? পাশাপাশি একটি সম্ভাব্য সমাধান?
আগাম ধন্যবাদ.
XmlSerializer
। সুতরাং এটি পরীক্ষা করে দেখুন।