189
|
1 using System.IO;
|
|
2 using System.Net;
|
|
3 using AltNetHispano.Agendas.Configurations;
|
|
4
|
|
5 namespace AltNetHispano.Agendas.Google
|
|
6 {
|
|
7 public class GUrlShortenerAdapter
|
|
8 {
|
|
9 private readonly ShortenConfigurationElement _config;
|
|
10
|
|
11 public GUrlShortenerAdapter()
|
|
12 {
|
|
13 _config = AgendasConfigurationManager.Publicadores.Google.Shorten;
|
|
14 }
|
|
15
|
|
16 public string GetShortUrl(string url)
|
|
17 {
|
|
18 WebRequest request = WebRequest.Create(_config.UrlAPI);
|
|
19 request.Method = WebRequestMethods.Http.Post;
|
|
20 request.ContentType = "application/json";
|
|
21
|
|
22 using(var writer = new StreamWriter(request.GetRequestStream()))
|
|
23 {
|
|
24 var json = string.Format("{{\"longUrl\": \"{0}\"}}", url);
|
|
25 writer.Write(json);
|
|
26 }
|
|
27
|
|
28 var response = request.GetResponse();
|
|
29
|
|
30 using(var reader = new StreamReader(response.GetResponseStream()))
|
|
31 {
|
|
32 const string prefix = "\"id\": \"";
|
|
33
|
|
34 var json = reader.ReadToEnd();
|
|
35
|
|
36 var start = json.IndexOf(prefix) + prefix.Length;
|
|
37 if (start>prefix.Length)
|
|
38 {
|
|
39 var length = json.IndexOf("\",", start) - start;
|
|
40
|
|
41 if (length>0)
|
|
42 return json.Substring(start, length);
|
|
43 }
|
|
44 }
|
|
45 return string.Empty;
|
|
46 }
|
|
47 }
|
|
48 } |