Example #1
0
        public string URLGetAuthor(string url, AlchemyAPI_BaseParams parameters)
        {
            CheckURL(url);
            parameters.setUrl(url);

            return(GET("URLGetAuthor", "url", parameters));
        }
        private string GET(string callName, string callPrefix, AlchemyAPI_BaseParams parameters)
        { // callMethod, callPrefix, ... params
            StringBuilder uri = new StringBuilder();

            uri.Append(_requestUri).Append(callPrefix).Append("/").Append(callName);
            uri.Append("?apikey=").Append(_apiKey).Append(parameters.getParameterString());

            parameters.resetBaseParams();

            Uri            address = new Uri(uri.ToString());
            HttpWebRequest wreq    = WebRequest.Create(address) as HttpWebRequest;

            wreq.Proxy = null;

            byte[] postData = parameters.GetPostData();

            if (postData == null)
            {
                wreq.Method = "GET";
            }
            else
            {
                wreq.Method = "POST";
                using (var ps = wreq.GetRequestStream())
                {
                    ps.Write(postData, 0, postData.Length);
                }
            }

            return(DoRequest(wreq, parameters.getOutputMode()));
        }
Example #3
0
        public string TextGetTextSentiment(string text, AlchemyAPI_BaseParams parameters)
        {
            CheckText(text);
            parameters.setText(text);

            return(POST("TextGetTextSentiment", "text", parameters));
        }
Example #4
0
        public string URLGetTextSentiment(string url, AlchemyAPI_BaseParams parameters)
        {
            CheckURL(url);
            parameters.setUrl(url);

            return(GET("URLGetTextSentiment", "url", parameters));
        }
Example #5
0
        public string URLGetMicroformats(string url, AlchemyAPI_BaseParams parameters)
        {
            CheckURL(url);
            parameters.setUrl(url);

            return(GET("URLGetMicroformatData", "url", parameters));
        }
        private string POST(string callName, string callPrefix, AlchemyAPI_BaseParams parameters)
        { // callMethod, callPrefix, ... params
            Uri address = new Uri(_requestUri + callPrefix + "/" + callName);

            HttpWebRequest wreq = WebRequest.Create(address) as HttpWebRequest;

            wreq.Proxy       = null;
            wreq.Method      = "POST";
            wreq.ContentType = "application/x-www-form-urlencoded";

            StringBuilder d = new StringBuilder();

            d.Append("apikey=").Append(_apiKey).Append(parameters.getParameterString());

            parameters.resetBaseParams();

            byte[] bd = UTF8Encoding.UTF8.GetBytes(d.ToString());

            wreq.ContentLength = bd.Length;
            using (Stream ps = wreq.GetRequestStream())
            {
                ps.Write(bd, 0, bd.Length);
            }

            return(DoRequest(wreq, parameters.getOutputMode()));
        }
Example #7
0
        public string HTMLGetAuthor(string html, string url, AlchemyAPI_BaseParams parameters)
        {
            CheckHTML(html, url);
            parameters.setHtml(html);
            parameters.setUrl(url);

            return POST("HTMLGetAuthor", "html", parameters);
        }
Example #8
0
        public string HTMLGetMicroformats(string html, string url, AlchemyAPI_BaseParams parameters)
        {
            CheckHTML(html, url);
            parameters.setHtml(html);
            parameters.setUrl(url);

            return(POST("HTMLGetMicroformatData", "html", parameters));
        }
Example #9
0
        public string HTMLGetAuthor(string html, string url, AlchemyAPI_BaseParams parameters)
        {
            CheckHTML(html, url);
            parameters.setHtml(html);
            parameters.setUrl(url);

            return(POST("HTMLGetAuthor", "html", parameters));
        }
Example #10
0
        public AlchemyAPI()
        {
            AlchemyAPI_BaseParams pars = new AlchemyAPI_BaseParams();
            pars.setOutputMode(AlchemyAPI_BaseParams.OutputMode.JSON);

            // Load an API key from disk.
            this._apiKey  = "06ca78e528486f918d5dfae2603b64d9d335205e&";
            _requestUri = "http://access.alchemyapi.com/calls/";
        }
Example #11
0
        private string GET(string callName, string callPrefix, AlchemyAPI_BaseParams parameters)
        { // callMethod, callPrefix, ... params
            StringBuilder uri = new StringBuilder();

            uri.Append(_requestUri).Append(callPrefix).Append("/").Append(callName);
            uri.Append("?apikey=").Append(_apiKey).Append(parameters.getParameterString());

            parameters.resetBaseParams();

            Uri            address = new Uri(uri.ToString());
            HttpWebRequest wreq    = WebRequest.Create(address) as HttpWebRequest;

            wreq.Proxy  = WebRequest.DefaultWebProxy;
            wreq.Method = "GET";

            return(DoRequest(wreq, parameters.getOutputMode()));
        }
Example #12
0
        private string POST(string callName, string callPrefix, AlchemyAPI_BaseParams parameters)
        {
            // callMethod, callPrefix, ... params
            Uri address = new Uri (_requestUri + callPrefix + "/" + callName);

            HttpWebRequest wreq = WebRequest.Create(address) as HttpWebRequest;
            wreq.Proxy = GlobalProxySelection.GetEmptyWebProxy();
            wreq.Method = "POST";
            wreq.ContentType = "application/x-www-form-urlencoded";

            StringBuilder d = new StringBuilder ();
            d.Append("apikey=").Append(_apiKey).Append(parameters.getParameterString());

            parameters.resetBaseParams();

            byte[] bd = UTF8Encoding.UTF8.GetBytes(d.ToString());

            wreq.ContentLength = bd.Length;
            using (Stream ps = wreq.GetRequestStream())
            {
                ps.Write(bd, 0, bd.Length);
            }

            return DoRequest(wreq, parameters.getOutputMode());
        }
Example #13
0
        private string GET(string callName, string callPrefix, AlchemyAPI_BaseParams parameters)
        {
            // callMethod, callPrefix, ... params
            StringBuilder uri = new StringBuilder ();
            uri.Append(_requestUri).Append(callPrefix).Append("/").Append(callName);
            uri.Append("?apikey=").Append(_apiKey).Append(parameters.getParameterString());

            parameters.resetBaseParams();

            Uri address = new Uri (uri.ToString());
            HttpWebRequest wreq = WebRequest.Create(address) as HttpWebRequest;
            wreq.Proxy = GlobalProxySelection.GetEmptyWebProxy();

            byte[] postData = parameters.GetPostData();

            if (postData == null)
            {
                wreq.Method = "GET";
            }
            else
            {
                wreq.Method = "POST";
                using (var ps = wreq.GetRequestStream())
                {
                    ps.Write(postData, 0, postData.Length);
                }
            }

            return DoRequest(wreq, parameters.getOutputMode());
        }
Example #14
0
        private string DoRequest(HttpWebRequest wreq, AlchemyAPI_BaseParams.OutputMode outputMode)
        {
            using (HttpWebResponse wres = wreq.GetResponse() as HttpWebResponse)
            {
                StreamReader r = new StreamReader (wres.GetResponseStream());

                string xml = r.ReadToEnd();

                if (string.IsNullOrEmpty(xml))
                    throw new XmlException ("The API request returned back an empty response. Please verify that the url is correct.");

                XmlDocument xmlDoc = new XmlDocument ();
                xmlDoc.LoadXml(xml);

                XmlElement root = xmlDoc.DocumentElement;

                if (AlchemyAPI_BaseParams.OutputMode.XML == outputMode)
                {
                    XmlNode status = root.SelectSingleNode("/results/status");

                    if (status.InnerText != "OK")
                    {
                        System.ApplicationException ex =
                        new System.ApplicationException ("Error making API call.");

                        throw ex;
                    }
                }
                else if (AlchemyAPI_BaseParams.OutputMode.RDF == outputMode)
                {
                    XmlNamespaceManager nm = new XmlNamespaceManager (xmlDoc.NameTable);
                    nm.AddNamespace("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
                    nm.AddNamespace("aapi", "http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#");
                    XmlNode status = root.SelectSingleNode("/rdf:RDF/rdf:Description/aapi:ResultStatus", nm);

                    if (status.InnerText != "OK")
                    {
                        System.ApplicationException ex =
                        new System.ApplicationException ("Error making API call.");

                        throw ex;
                    }
                }

                return xml;

            }
        }
Example #15
0
        public string URLGetTitle(string url, AlchemyAPI_BaseParams parameters)
        {
            CheckURL(url);
            parameters.setUrl(url);

            return GET("URLGetTitle", "url", parameters);
        }
Example #16
0
        public string URLGetMicroformats(string url, AlchemyAPI_BaseParams parameters)
        {
            CheckURL(url);
            parameters.setUrl(url);

            return GET("URLGetMicroformatData", "url", parameters);
        }
Example #17
0
        public string TextGetTextSentiment(string text, AlchemyAPI_BaseParams parameters)
        {
            CheckText(text);
            parameters.setText(text);

            return POST("TextGetTextSentiment", "text", parameters);
        }
Example #18
0
        public string HTMLGetMicroformats(string html, string url, AlchemyAPI_BaseParams parameters)
        {
            CheckHTML(html, url);
            parameters.setHtml(html);
            parameters.setUrl(url);

            return POST("HTMLGetMicroformatData", "html", parameters);
        }
Example #19
0
        private string GET(string callName, string callPrefix, AlchemyAPI_BaseParams parameters)
        {
            // callMethod, callPrefix, ... params
            StringBuilder uri = new StringBuilder();
            uri.Append(_requestUri).Append(callPrefix).Append("/").Append(callName);
            uri.Append("?apikey=").Append(_apiKey).Append(parameters.getParameterString());

            parameters.resetBaseParams();

            Uri address = new Uri(uri.ToString());
            HttpWebRequest wreq = WebRequest.Create(address) as HttpWebRequest;
            wreq.Proxy = GlobalProxySelection.GetEmptyWebProxy();
            wreq.Method = "GET";

            return DoRequest(wreq, parameters.getOutputMode());
        }