GetURL() public method

public GetURL ( ) : Uri
return System.Uri
示例#1
0
		/// <summary>Get the HTTP response code from the request.</summary>
		/// <remarks>
		/// Get the HTTP response code from the request.
		/// <p>
		/// Roughly the same as <code>c.getResponseCode()</code> but the
		/// ConnectException is translated to be more understandable.
		/// </remarks>
		/// <param name="c">connection the code should be obtained from.</param>
		/// <returns>
		/// r HTTP status code, usually 200 to indicate success. See
		/// <see cref="Sharpen.HttpURLConnection">Sharpen.HttpURLConnection</see>
		/// for other defined constants.
		/// </returns>
		/// <exception cref="System.IO.IOException">communications error prevented obtaining the response code.
		/// 	</exception>
		public static int Response(HttpURLConnection c)
		{
			try
			{
				return c.GetResponseCode();
			}
			catch (ConnectException ce)
			{
				string host = c.GetURL().GetHost();
				// The standard J2SE error message is not very useful.
				//
				if ("Connection timed out: connect".Equals(ce.Message))
				{
					throw new ConnectException(MessageFormat.Format(JGitText.Get().connectionTimeOut, 
						host));
				}
				throw new ConnectException(ce.Message + " " + host);
			}
		}
示例#2
0
		/// <exception cref="System.IO.IOException"></exception>
		private void Authorize(HttpURLConnection c)
		{
			IDictionary<string, IList<string>> reqHdr = c.GetRequestProperties();
			SortedDictionary<string, string> sigHdr = new SortedDictionary<string, string>();
			foreach (KeyValuePair<string, IList<string>> entry in reqHdr.EntrySet())
			{
				string hdr = entry.Key;
				if (IsSignedHeader(hdr))
				{
					sigHdr.Put(StringUtils.ToLowerCase(hdr), ToCleanString(entry.Value));
				}
			}
			StringBuilder s = new StringBuilder();
			s.Append(c.GetRequestMethod());
			s.Append('\n');
			s.Append(Remove(sigHdr, "content-md5"));
			s.Append('\n');
			s.Append(Remove(sigHdr, "content-type"));
			s.Append('\n');
			s.Append(Remove(sigHdr, "date"));
			s.Append('\n');
			foreach (KeyValuePair<string, string> e in sigHdr.EntrySet())
			{
				s.Append(e.Key);
				s.Append(':');
				s.Append(e.Value);
				s.Append('\n');
			}
			string host = c.GetURL().GetHost();
			s.Append('/');
			s.Append(Sharpen.Runtime.Substring(host, 0, host.Length - DOMAIN.Length - 1));
			s.Append(c.GetURL().AbsolutePath);
			string sec;
			try
			{
				Mac m = Mac.GetInstance(HMAC);
				m.Init(privateKey);
				sec = Base64.EncodeBytes(m.DoFinal(Sharpen.Runtime.GetBytesForString(s.ToString()
					, "UTF-8")));
			}
			catch (NoSuchAlgorithmException e_1)
			{
				throw new IOException(MessageFormat.Format(JGitText.Get().noHMACsupport, HMAC, e_1
					.Message));
			}
			catch (InvalidKeyException e_1)
			{
				throw new IOException(MessageFormat.Format(JGitText.Get().invalidKey, e_1.Message
					));
			}
			c.SetRequestProperty("Authorization", "AWS " + publicKey + ":" + sec);
		}
示例#3
0
 /// <exception cref="System.IO.IOException"></exception>
 internal override void ConfigureRequest(HttpURLConnection conn)
 {
     IDictionary<string, string> r = new LinkedHashMap<string, string>();
     string realm = @params.Get("realm");
     string nonce = @params.Get("nonce");
     string cnonce = @params.Get("cnonce");
     string uri = Uri(conn.GetURL());
     string qop = @params.Get("qop");
     string method = conn.GetRequestMethod();
     string A1 = user + ":" + realm + ":" + pass;
     string A2 = method + ":" + uri;
     r.Put("username", user);
     r.Put("realm", realm);
     r.Put("nonce", nonce);
     r.Put("uri", uri);
     string response;
     string nc;
     if ("auth".Equals(qop))
     {
         nc = string.Format("%08x", ++requestCount);
         response = KD(H(A1), nonce + ":" + nc + ":" + cnonce + ":" + qop + ":" + H(A2));
     }
     else
     {
         nc = null;
         response = KD(H(A1), nonce + ":" + H(A2));
     }
     r.Put("response", response);
     if (@params.ContainsKey("algorithm"))
     {
         r.Put("algorithm", "MD5");
     }
     if (cnonce != null && qop != null)
     {
         r.Put("cnonce", cnonce);
     }
     if (@params.ContainsKey("opaque"))
     {
         r.Put("opaque", @params.Get("opaque"));
     }
     if (qop != null)
     {
         r.Put("qop", qop);
     }
     if (nc != null)
     {
         r.Put("nc", nc);
     }
     StringBuilder v = new StringBuilder();
     foreach (KeyValuePair<string, string> e in r.EntrySet())
     {
         if (v.Length > 0)
         {
             v.Append(", ");
         }
         v.Append(e.Key);
         v.Append('=');
         v.Append('"');
         v.Append(e.Value);
         v.Append('"');
     }
     conn.SetRequestProperty(HttpSupport.HDR_AUTHORIZATION, NAME + " " + v);
 }