Конечно, я надеюсь, что это поможет.
Это функция, которую вы можете использовать для подключения двух списков
def btwn(t,s):
t_zero = []
t_non_zero = []
running = 0
if s[0]==0: #Assign the starting value
prev_zero = True
else:
prev_zero = False
for score in range(len(s)): #run the length of the lists, using the position
#compare current score to previous score
#if the previous and current are same, keep a running
#total of the difference, if they change, dump that
#running total into the appropriate list
if score != 0: #unless it's the first element, add to running
running += t[score] - t[score - 1]
if (s[score] == 0 and prev_zero) or (s[score] != 0 and not prev_zero):
#unchanged, add to running
continue
elif s[score] == 0: #changed to zero from non-zero
prev_zero = True
t_non_zero.append(running)
running = 0
else: #changed to non-zero from zero
prev_zero = False
t_zero.append(running)
running = 0
if prev_zero: #add the final value to one of the two lists
t_zero.append(running)
else:
t_non_zero.append(running)
return t_zero, t_non_zero #return the lists
Эта функция принимает 2 списка и возвращает 2 списка.
Функция начинается с текущего вычисленного числа в нуле, считывает первое значение списка из s, чтобы решить, начинаем ли мы с нуля, или нет, а затем последовательно просматривает каждое значение в списке. Он добавляет промежуточный итог на каждой итерации в зависимости от времени t между этим элементом и предыдущим. Если значение переключается с нуля на ненулевое значение или наоборот, оно сбрасывает промежуточную сумму в соответствующий список и сбрасывает промежуточную сумму.
Я протестировал его, и эта функция вернула нужные вам списки, хотя первый ненулевой элемент на самом деле равен 50, а не 40. Значение s равно non_zero для первых 5 последовательных периодов по 10 секунд, и это не до шестого элемента, который меняется на ноль. Несмотря на то, что первый элемент имеет время = 0, он по-прежнему не равен нулю для каждого пробела между элементами, пока вы не соберете следующее изменение оценки в элементе 6.
Вы можете вызвать функцию и затем назначить ее нужным спискам вывода, если хотите
#example
t_zero, t_non_zero = btwn(t,s)
Система. Сеть. HttpWebRequest добавляет, что заголовок 'HTTP-заголовок "Ожидает: 100 - Продолжаются"' к каждому запросу, если Вы явно не спрашиваете это не к установкой это статическое свойство ко лжи:
System.Net.ServicePointManager.Expect100Continue = false;
Некоторые серверы дросселируют на том заголовке и передают обратно 417 ошибок, которые Вы видите.
Дают этому выстрел.
Форма Вы пытаетесь эмулировать, имеют два поля, имя пользователя и пароль?
Если так, эта строка:
postData.Add("username", "password");
не корректно.
Вам были бы нужны две строки как:
postData.Add("username", "Moose");
postData.Add("password", "NotMoosespasswordreally");
Редактирование:
Хорошо, так как это не проблема, один способ заняться, это должно использовать что-то как Fiddler или Wireshark для наблюдения то, что отправляется в веб-сервер от браузера успешно, затем сравните это с тем, что отправляется от кода. Если Вы будете идти в обычный порт 80 из .NET, то Скрипач все еще получит этот трафик.
существует, вероятно, некоторое другое скрытое поле на форме, что веб-сервер ожидает, что Вы не отправляете.