我目前正在自動化一個用於管理FTP用戶的Web界面。HttpWebRequest的序列
我試圖用HttpWebRequest來做到這一點,我有一個電話記錄我在網站上,第二個電話是添加一個新的FTP用戶。
我已經在瀏覽器中試過我的兩個網址,他們工作,他們最終創建一個用戶。
string login = "https://www.ftpsite.net/./panel/index.php?txvUsername=myaccount&txvPassword=myPassword&submitButton=Login";
這讓我登錄時,當我在瀏覽器地址欄中輸入它。
第二次創建用戶的調用如下。
string createUser = "https://www.ftpSite.net/panel/ftpsites/updatelogin?login_id=&login=toto123&realname=realnametoto&homedir=root&passwd=superpassword11&expdate=01-01-2100&neverExpire=on"a_value=0"a_unit=GB&group_id=0&status=on&ftp=on&filelist=on&ftp_download=on&http=on&web_filelist=on&web_download=on&email=";
這就造成當我在瀏覽器的地址欄中輸入該用戶,如果它遵循我們登錄了一個。
我的問題是,我想這一點使用HttpWebRequest和沒有做成功。我可以讓自己登錄,但是當我嘗試創建用戶時,它似乎會返回一個「錯誤」錯誤代碼,說我已經創建了太多的用戶,但這並不是這種情況,因爲我可以在該調用之後創建更多用戶。下面是代碼我用HtttpRequest
_datCookie = new CookieContainer();
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(login);
httpWebRequest.Method = "POST";
httpWebRequest.CookieContainer = _datCookie;
WebResponse response = httpWebRequest.GetResponse();
referer = response.ResponseUri.AbsoluteUri;
Stream requestStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(requestStream);
_datCookie = httpWebRequest.CookieContainer;
response.Close();
httpWebRequest = (HttpWebRequest)WebRequest.Create(createUser);
httpWebRequest.CookieContainer = _datCookie;
httpWebRequest.Referer = referer;
httpWebRequest.Method = "POST";
response = httpWebRequest.GetResponse();
requestStream = response.GetResponseStream();
streamReader = new StreamReader(requestStream);
webBrowser.DocumentText = streamReader.ReadToEnd();
response.Close();
我抓住了,並試圖沒有成功here模仿。
如果你的錯誤是從FTP站點,然後你我們需要看看這個。您的請求可能沒有任何問題。這是您控制的網站,還是第三方FTP站點? – Bobson
它的第三方網站,我認爲問題是在請求中,因爲如果我在瀏覽器的地址欄中寫入url和查詢字符串它的作品。 –
請小提琴手,並分析您的請求從瀏覽器和您的http請求。最終服務不知道您如何生成請求,除非它們存在差異。它應該是假的用戶ID和所有其他參數,如內容長度,內容類型等請發送請求。請讓我知道結果是什麼。 –