将以下C#代码转换为java代码?

问题描述:

我有下面的C#代码,我想要一个相当于此的Java代码。以下C#代码是从this answer to another * question将以下C#代码转换为java代码?

的代码如下:

string orkutSite = "http://www.orkut.com/Login.aspx"; // enter correct address 
string formPage = ""; 
string afterLoginPage = ""; 

// Get postback data and cookies 
CookieContainer cookies = new CookieContainer(); 
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(orkutSite); 
getRequest.CookieContainer = cookies; 
getRequest.Method = "GET"; 

HttpWebResponse form = (HttpWebResponse)getRequest.GetResponse(); 
using (StreamReader response = 
    new StreamReader(form.GetResponseStream(), Encoding.UTF8)) 
{  
    formPage = response.ReadToEnd(); 
} 

Dictionary<string, string> inputs = new Dictionary<string,string>(); 
inputs.Add("__EVENTTARGET", ""); 
inputs.Add("__EVENTARGUMENT", ""); 
foreach (Match input in 
    Regex.Matches(formPage, 
     @"<input.*?name=""(?<name>.*?)"".*?(?:value=""(?<value>.*?)"".*?)? />", 
     RegexOptions.IgnoreCase | RegexOptions.ECMAScript)) 
{  
    inputs.Add(input.Groups["name"].Value, input.Groups["value"].Value); 
} 

inputs["username"] = "xxxxx"; // *please*, check for \\ 
inputs["password"] = "yyyyy"; // correct field names \\ 

byte[] buffer = 
    Encoding.UTF8.GetBytes(
     String.Join("&", 
      Array.ConvertAll<KeyValuePair<string, string>, string(      
       inputs.ToArray(), 
        delegate(KeyValuePair item) 
        { 
         return item.Key + "=" + HttpUtility.UrlEncode(item.Value); 
        }))); 

HttpWebRequest postRequest = (HttpWebRequest)WebRequest.Create(orkutSite); 
postRequest.CookieContainer = cookies;postRequest.Method = "POST"; 
postRequest.ContentType = "application/x-www-form-urlencoded"; 

// send username/password 
using (Stream stream = postRequest.GetRequestStream()) 
{ 
    stream.Write(buffer, 0, buffer.Length); 
} 

// get response from login page 
using (StreamReader reader = new StreamReader(
    postRequest.GetResponse().GetResponseStream(), Encoding.UTF8)) 
{ 
    afterLoginPage = reader.ReadToEnd(); 
} 
+1

那么你有什么困难? – 2009-10-07 08:29:38

我不打算这样做将这段代码对你的工作,但我可以为您提供一些帮助上手。你列出的代码做了一个HTTP GET和一个POST,整个转换过程在那里进行。不确定它究竟在做什么或为什么乍一看。

我怀疑你可以用更高级别的库替换很多这样的库,例如Java中的Apache Commons HttpClient。它是一个非常强大的库,可以完成同样的事情,而且比Java中的简单URLConnection更直观。

他们有一个很好的tutorial和使用客户端的示例。如果你使用这个客户端,你可能会少得多的样本中的转换代码。