2016-02-17 94 views
-1

我正嘗試通過WebRequest登錄網站。我在這裏得到一個例外:無效的Uri:uri方案無效

WebRequest req = WebRequest.Create(formUrl.Trim()); 

string url,string username,string password來自一個文本框。這是全碼:

public void LoginToUrl(string url,string username, string password) 
{ 
    formUrl = url; 
    formParams = string.Format("username={0}&password={1}", username,password);     

    WebRequest req = WebRequest.Create(formUrl.Trim());// 
    req.ContentType = "application/x-www-form-urlencoded"; 
    req.Method = "POST"; 
     bytes = Encoding.ASCII.GetBytes(formParams); 
    req.ContentLength = bytes.Length; 
    using (Stream os = req.GetRequestStream()) 
    { 
     os.Write(bytes, 0, bytes.Length); 
    } 
    WebResponse resp = req.GetResponse(); 
    cookieHeader = resp.Headers["Set-cookie"]; 
} 

這是POST數據:

Host=internetlogin1.cu.edu.ng 

User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0 

Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

Accept-Language=en-US,en;q=0.5 

Accept-Encoding=gzip, deflate 

請參閱本link

Connection=keep-alive 

Content-Type=application/x-www-form-urlencoded 

Content-Length=49 
POSTDATA=dst=&popup=true&username=13ck015373&password=F3NB 
+7

那麼,如何網址是什麼樣子? –

+0

https://internetlogin1.cu.edu.ng/login只能通過我的學校內網訪問 –

+1

在瀏覽器中,按F12並使用調試器來檢查發佈的內容。將此添加到您的問題。 –

回答

0

如果有URL字符串的參數,那麼你需要添加他們通過'?'和'&'字符

2

您應該傳遞一個有效的URL來創建WebRequest。 錯誤表示URL(來自文本框)不包含s​​cheme('http://'或'https://'),或者它無效。

在文本框中輸入此網址(不要忘了HTTP或HTTPS):

http://internetlogin1.cu.edu.nghttps://internetlogin1.cu.edu.ng

+0

這是表單:https://imageshack.com/i/plrZ2PWvp這是錯誤https://imageshack.com/i/pnxf7Omjp –

+0

它仍然顯示例外請幫忙 –

+0

@simdiejinkeonye:根據錯誤圖像,在將文本框值傳遞給LoginToUrl函數時出現錯誤。假設URL文本框是txtUrl,則應使用txtUrl.Text引用表單中輸入的值。 – Talebian

0

我有一個模式URI無效的問題爲好。必須執行以下操作。不知道爲什麼..但FYI

作品:

Uri serverUri = new Uri("http://url.com/sub/somethingService"); 
var webRequest = (HttpWebRequest)WebRequest.Create(serverUri); 

什麼不工作(有同樣的錯誤):

var webRequest = (HttpWebRequest)WebRequest.Create("http://url.com/sub/somethingService");