运行这段代码时,我得到了以下错误:“HttpWebRequest的无效的URI URI为空”C#HttpWebRequest的无效URI
CookieContainer cookieContainer = new CookieContainer();
HttpWebRequest PreRequest = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ServiceLogin?utm_source=/places&utm_medium=van&utm_campaign=en&continue=http://www.google.com/local/add/businessCenter%3Fservice%3Dlbc%26gl%3DUS%26hl%3Den-US&service=lbc&hl=en-US&gl=US");
PreRequest.CookieContainer = cookieContainer;
PreRequest.AllowAutoRedirect = true;
HttpWebResponse PreResponse = (HttpWebResponse)PreRequest.GetResponse();
Stream PreResponseStream = PreResponse.GetResponseStream();
PreResponse.Cookies = PreRequest.CookieContainer.GetCookies(PreRequest.RequestUri);
Encoding PreEnc = System.Text.Encoding.UTF8;
StreamReader PreResponseStreamReader = new StreamReader(PreResponse.GetResponseStream(), PreEnc, true);
String PreMyHTML = PreResponseStreamReader.ReadToEnd();
String Pattern = "name=\"GALX\"[\\s]*value=\"([a-zA-Z0-9-_\\.]*)\"";
Match MyMatch = Regex.Match(PreMyHTML, Pattern);
String GALX = MyMatch.Groups[1].ToString();
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ServiceLoginAuth?service=lbc<mpl=sso&continue=http%3A%2F%2Fwww.google.com%2Flocal%2Fadd%2FbusinessCenter%3Fservice%3Dlbc%26gl%3DUS%26hl%3Den-US&service=lbc&uilel=3<mpl=sso&hl=en_US<mpl=sso&GALX=" + GALX + "&Email=" + user + "&Passwd=YOURACCOUNTPASSWORD&rmShown=1&signIn=Sign+in&asts=");
Request.CookieContainer = cookieContainer;
Request.Method = "POST";
Request.Referer = "https://www.google.com/accounts/ServiceLogin?utm_source=/places&utm_medium=van&utm_campaign=en&continue=http://www.google.com/local/add/businessCenter%3Fservice%3Dlbc%26gl%3DUS%26hl%3Den-US&service=lbc&hl=en-US&gl=US";
Request.MaximumAutomaticRedirections = 50;
Request.AllowAutoRedirect = true;
Request.KeepAlive = true;
Request.ContentLength = 0;
// Get the response
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
Stream ResponseStream = Response.GetResponseStream();
Response.Cookies = Request.CookieContainer.GetCookies(Request.RequestUri);
// Read the response from the stream
Encoding Enc = System.Text.Encoding.UTF8;
StreamReader ResponseStreamReader = new StreamReader(Response.GetResponseStream(), Enc, true);
String MyHTML = ResponseStreamReader.ReadToEnd();
//textBox2.Text = MyHTML;
String Pattern2 = "location\\.replace\\(\"(http:\\/\\/www\\.youtube\\.com\\/signin[a-zA-Z0-9\\\\\\?\\%_-]*)\"\\)";
Match MyMatch2 = Regex.Match(MyHTML, Pattern2);
String YTRedirect = MyMatch2.Groups[1].ToString();
String Temp = YTRedirect.Replace("\\x3d", "=");
String Temp2 = Temp.Replace("\\x26", "&");
YTRedirect = Temp2;
HttpWebRequest PosterRequest = (HttpWebRequest)WebRequest.Create(YTRedirect);
PosterRequest.CookieContainer = cookieContainer;
PosterRequest.Method = "GET";
HttpWebResponse PosterResponse = (HttpWebResponse)PosterRequest.GetResponse();
Stream PosterResponseStream = PosterResponse.GetResponseStream();
PosterResponse.Cookies = PosterRequest.CookieContainer.GetCookies(PosterRequest.RequestUri);
Encoding PosterEnc = System.Text.Encoding.UTF8;
StreamReader PosterResponseStreamReader = new StreamReader(PosterResponse.GetResponseStream(), PosterEnc, true);
String PosterMyHTML = PosterResponseStreamReader.ReadToEnd();
HttpWebRequest PostestRequest = (HttpWebRequest)WebRequest.Create(textBox4.Text);
PostestRequest.CookieContainer = cookieContainer;
PostestRequest.Method = "GET";
HttpWebResponse PostestResponse = (HttpWebResponse)PostestRequest.GetResponse();
Stream PostestResponseStream = PostestResponse.GetResponseStream();
PostestResponse.Cookies = PostestRequest.CookieContainer.GetCookies(PostestRequest.RequestUri);
Encoding PostestEnc = System.Text.Encoding.UTF8;
StreamReader PostestResponseStreamReader = new StreamReader(PostestResponse.GetResponseStream(), PostestEnc, true);
String PostestMyHTML = PostestResponseStreamReader.ReadToEnd();
我试图登录并查看视频,这也将是有趣的,看看一种方式来赞许或留下评论,帮助赞赏!编辑:错误发生在HttpWebRequest PosterRequest =(HttpWebRequest)WebRequest.Create(YTRedirect);
这是很多代码,几乎没有任何有关错误的信息。当然,你可以通过一些堆栈跟踪来缩小范围吗? – spender