Мне кажется, что вы пытаетесь создать метод, который повторно инициализирует ваш объект, т. Е. Устанавливает его обратно в исходные значения. Вот почему вы хотите создать новый объект и назначить его текущему объекту, верно?
Если это так, давайте попробуем другой способ сделать это, поскольку, как уже было сказано, вы можете ' переназначить this
.
Что если вместо этого вы попробовали что-то вроде этого:
public class Thing {
String a1;
int a2;
public Thing() {
this.meth();
}
public void meth() {
this.a1 = "a1";
this.a2 = 2;
}
}
Таким образом, Thing.meth () фактически инициализирует ваш объект, и конструктор вызывает его при создании объекта. Затем вы можете позвонить снова, когда захотите.
Это просто HTTP-запрос. Возможно, они блокируют отправку UserAgent curl с его запросами.
Вместо этого вы можете заставить его подделать обычный браузер (например, firefox).
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$ch = curl_init();
// set user agent
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
Вы уверены, что правильно обрабатываете файлы cookie, которые отправляет сервер? Вполне возможно, что вам нужно взять файл cookie с первой страницы и вернуть его с информацией о пользователе. Я входил в систему с помощью браузера, просматривая все заголовки, которые перемещаются туда и обратно, проверял все файлы cookie на каждом этапе и следил за сценариями, которые могут редактировать файлы cookie или переданные данные.
Ни на одном сайте невозможно войти через cURL, но многие сайты намеренно затрудняют вход на них программным способом, чтобы уменьшить количество спамеров. Они делают глупые трюки с файлами cookie, используют Javascript для установки полей динамической формы, получают файлы cookie из файлов GIF и многое другое.
Приложение, подобное HTTP Analyzer , действительно полезно для выяснения такого рода вещей.