Хорошо, я понял это. Единственное, что нужно было сделать для этой настройки, - мне пришлось изменить ответ, добавить туда строку xml и затем установить content_type возвращаемого объекта.
return HttpResponse(str(response),content_type='application/xml')
Doak, Был почти там, но каждый раз я поместил любой запрос в потоке sepreate, который все еще не представила бы страница, пока весь поток не закончил работать.
лучший способ, которым я нашел, корректировал метод Doak, и просто засовывал тайм-аут там и глотал ошибку.
я знаю, что это - взлом, но это действительно работает :P
WebRequest wr = WebRequest.Create("http://localhost:49268/dostuff.aspx");
wr.Timeout = 3500;
try
{
HttpWebResponse response = (HttpWebResponse)wr.GetResponse();
}
catch (Exception ex)
{
//We know its going to fail but that dosent matter!!
}
Это должно работать на Вас:
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadDataAsync(new Uri("http://some.url.com/some/resource.html"));
класс WebClient имеет события для уведомления вызывающей стороны, когда запрос завершается, но так как Вы не заботитесь, что не должно быть ничего больше к нему.
Для того, чтобы не иметь Вас приложение для зависания Вас должно будет назвать метод от Потока.
Для Запроса HTTP без ответа, что-то как этот должно сделать задание:
Thread myThread = new Thread(new ThreadStart(myMethodThatDoHttp));
myThread.Start();
public void myMethodThatDoHttp()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www..com");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
Взгляд System.Net.WebClient
, конкретно используйте DownloadDataAsync()
метод для отправления запроса, не блокируя остальную часть приложения.
Чтобы иметь этот процесс, не прерывая поток страницы Вашей текущей страницы, я рекомендовал бы создать сервис WCF, который выполнит код для Вас. Сервис установил для использования 1 способа, которым вызовы и на странице инициируют вызов Ajax к сервису.
Используйте System.Net.WebClient.DownloadDataAsync/DownloadFileAsync
в сочетании с DownloadDataCompleted/DownloadFileCompleted
.