Я создаю инструмент, который регистрируется на сайте, а затем публикует пост в блоге.
Все формы имеют тип контента "application / x-www-form-urlencoded"
Я использую следующий код для входа в систему:
private void btnSignOn_Click_1(System.Object sender, System.EventArgs e)
{
string strURL = "http://en.netlog.com/go/login";
HttpWebRequest HWRequest = GetRequest(strURL);
Parameters HWParameters = ReadResponse(HWRequest, strURL);
foreach (Parameter p in HWParameters) {
switch (p.Name) {
case "nickname":
p.Value = txtHalfID.Text;
break;
case "password":
p.Value = txtHalfPassword.Text;
break;
}
}
HWRequest = PostRequest(strURL, HWParameters, encURL);
GetResponse(HWRequest);
}
Строка, которая была зашифрована и затем записана в поток, выглядит следующим образом:
action = login & target = -Lw_ & запомнить = ДА & псевдоним = mynickname & пароль = mypassword & q = & referrer = home & action = login & target = -Lw _ & nickname = mynickname & password = mypassword & запомнить = YES & netlogVersion = v6.00
(на сайте есть две формы входа, однамаленький вверху и один в середине страницы)
Далее я нажимаю кнопку, которая должна публиковать блог, я сохраняю файлы cookie в контейнере cookie и вижу, когда проверяю веб-запрос, чтомой профиль сохраняется в системе.
Код для поста блога почти такой же:
private void bntPostBlog_Click(object sender, EventArgs e)
{
string strURL = "http://en.netlog.com/go/manage/blog/view=add";
HttpWebRequest HWRequest = GetRequest(strURL);
Parameters HWParameters = ReadResponse(HWRequest, strURL);
foreach (Parameter p in HWParameters) {
p.Value = HttpUtility.UrlEncode(p.Value);
switch (p.Name) {
case "title":
p.Value = txtTitle.Text;
break;
case "message":
p.Value = txtMsg.Text;
break;
}
}
HWRequest = PostRequest(strURL, HWParameters, encURL);
GetResponse(HWRequest);
}
На этот раз строка выглядит так:
"д = & реферер = управление & название = testTitle и мнеssage = testMsg & action = __ button & unSavedContentWarning = + изменения + в + вашем + блоге + сообщение + еще не были сохранены +. & csrftoken_add = 3e16b204 & allow_comments = YES & allow_ratings = YES & netlogVersion = v6.00 "
*1026* * 2727проверьте ответ, и я попал в тот же экран «написать блог» без публикации блога.
Сначала я подумал, что проблема в кодировании строки, отсюда и дополнительная строка URLencode в клике поста блога.
Кто-нибудь узнает, что я делаю не так?Я не вижу разницы между постом в блоге и постом входа в систему.Однако работает только вход в систему.
Если вам нужно больше кода, я был бы рад показать его, я решил сохранить его просто, не публикуя все функции ..
Спасибо зазаранее!