I am trying to add contact using yahoo Rest API and XML format,
my page is returning 404, not found error, while fiddler is showing result as 500. Can anybody out there help me find what i am doing wrong? i will be extremely grateful,
here is my C# code,
CODE
YahooOAuthBase oauth = new YahooOAuthBase();
Uri uri = new Uri("http://social.yahooapis.com/v1/user/" + OauthYahooGuid + "/contacts?format=XML");
string nonce = oauth.GenerateNonce();
string timeStamp = oauth.GenerateTimeStamp();
string normalizedUrl;
string normalizedRequestParameters;
string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, OauthToken, OauthTokenSecret, "POST", timeStamp, nonce, YahooOAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);
try
{
StreamReader sr = new StreamReader(Server.MapPath("~/YahooAddRequest.xml"));
string requestData=sr.ReadToEnd();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri.ToString());
req.Method = "POST";
req.ContentType = "application/xml";
string authHeader = "Authorization: OAuth " +
"realm=\"yahooapis.com\"" +
",oauth_consumer_key=\"" + ConsumerKey + "\"" +
",oauth_nonce=\"" + nonce + "\"" +
",oauth_signature_method=\"HMAC-SHA1\"" +
",oauth_timestamp=\"" + timeStamp + "\"" +
",oauth_token=\"" + OauthToken + "\"" +
",oauth_version=\"1.0\"" +
",oauth_signature=\"" + HttpUtility.UrlEncode(sig) + "\"";
req.Headers.Add(authHeader);
req.ContentLength =requestData.Length;
Stream reqStream = req.GetRequestStream();
StreamWriter sw = new StreamWriter(reqStream);
sw.Write(requestData);
sw.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
and here is how i am composing my request in XML,
CODE
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<contact>
<fields>
<type>nickname</type>
<value>Banana2</value>
</fields>
<fields>
<type>notes</type>
<value>Loooser!</value>
</fields>
<fields>
<type>name</type>
<value>
<givenName>Test</givenName>
<familyName>Contact</familyName>
</value>
</fields>
<fields>
<type>email</type>
<value>demo@demo1.com</value>
<flags>WORK</flags>
</fields>
<fields>
<type>email</type>
<value>something@some.com</value>
<flags>WORK</flags>
</fields>
<fields>
<type>phone</type>
<value>234342424</value>
<flags>WORK</flags>
</fields>
<fields>
<type>phone</type>
<value>1211 12333</value>
<flags>WORK</flags>
</fields>
<fields>
<type>jobtitle</type>
<value>lead idiot</value>
</fields>
<fields>
<type>company</type>
<value>bannerama</value>
</fields>
<categories>
<name>friend</name>
</categories>
</contact>
Also, i am easily able to fetch the list of existing contacts, which is making me feel like may be my xml request is not in right format?
thanks,
Aftab-