ASP.NET 2.0 C# Web приложение Работа с XML

ChaseTM

Ребят подскажите или киньте ссылку где почитать можно.
нужно при нажатии кнопки отправить XML серверу... сервер отвечает после этого запроса, нужно получить этот ответ и присвоить внутренней структуре. Ответ тоже в виде XML. Как это можно реализовать?
Понятно что с помощью HTML можно послать серверу данные, но как потом вытащить ответ?

pitrik2

блин, неужель еще есть люди не слышавшие слово "AJAX" ?

Dasar

поставь
http://www.asp.net/ajax/downloads/
и ботай что такое ajax

ChaseTM

проблема в том что мне нужно, проанализировать ответ, и выкинуть из него кучу всего.... а только потом вывести. короче.
Реализуется яндекс xml. я ему посылаю, должен принять, обработать.. и потом вывести пользователю. как мне принять, чтоб обработать. или вы предлагаете это все на клиента скинуть с помощью ajax?

Dasar

с ходу могу предложить следующее решение:
сервер с помощью ajax принимает запрос от страницы, делает запрос к yandex-у, обрабатывает и ответ опять же средствами ajax отдает обратно на страницу

ChaseTM

с ходу могу предложить следующее решение:
сервер с помощью ajax принимает запрос от страницы, делает запрос к yandex-у, обрабатывает и ответ опять же средствами ajax отдает обратно на страницу
Хм .. интересная мысль появилась =)
с помощью Ajax делаем запрос к яндексу получаем его и отправляем нашему сайту, он обрабатывает его и выдает ответ...
это будет нормально?

pitrik2

клиента надо делать максимально тупым
получил данные -> показал
получил еще данные -> опять показал
...
сервер же пускай собирает все данные, подготавлиает в простой вид и отдает их клиенту

pitrik2

с помощью Ajax делаем запрос к яндексу получаем его и отправляем нашему сайту, он обрабатывает его и выдает ответ...
это будет нормально?
плюс: яндекс не знает откуда пришел запрос, типа ты (твой сервер) не светишься
минус: яндекс наверняка имеет ограничение на результат, а чтобы его снять надо заплатить денюжку и поиметь данные для авторизации, эти данные на клиенте хранить не будешь - своруют, значит придутся переписывать все нах

ChaseTM

Блин Яндекс знает IP и с другого IP вроде бы запрос не сделаешь...
интересно запрос яндексу с помощью Ajax с какой IP будет сделано. с моего сайта или с клиентской стороны?

pitrik2

с моего сайта или с клиентской стороны?
очевидные вещи спрашивать перестань
легче нам общаться будет

ChaseTM

Люди... как создать xml запрос на Ajax....
вот попробовал.. не работает... а и еще нужно методом POST или GET. Вроде указал, но все же.
  
var serviceUrl = "http://xmlsearch.yandex.ru/xmlsearch/";

var strEnvelope = "<?xml version=""1.0"" encoding=""windows-1251""?>";


xmlhttp.open("POST", serviceUrl, true);

xmlhttp.setRequestHeader("Content-Type", "text/xml");
xmlhttp.send(strEnvelope);

ChaseTM

и есть ли возможность отследить ошибку на странице?

olegusmaximus

С помощью ajax можно обратиться только к домену, с которого загружена страница

ChaseTM

а что тогда скажите о такой функции xmlhttp.responText ?
разве она не получает ответ от сервера на тот вызов?

olegusmaximus

К примеру, если страница с аяксом расположена по адресу http://mydomain.com/page
то на клиенте с помощью аякса в общем случае нельзя обратиться к стороннему сервису типа яндекса

ChaseTM

К примеру, если страница с аяксом расположена по адресу http://mydomain.com/page
то на клиенте с помощью аякса в общем случае нельзя обратиться к стороннему сервису типа яндекса
так для начала..
у меня есть библиотека отвечающая за Ajax. все пути прописаны вроде. я хочу обратиться к яндексу и получть ответ.. как мне это сделать? код сверху не дает мне ответа. + внизу страницы видно, что есть ошибка. но как ее отследить?

ChaseTM

блин.... фиг знает почему.. но у меня все заработало... кому интересно могу выложить.

olegusmaximus

В каких браузерах проверялось?

pitrik2

кому интересно могу выложить
ты не поверишь
но подобных экзамплов в гугле тысячи

kruzer25

с помощью Ajax делаем запрос к яндексу
Со стороны клиента?
Не выйдет, тебе ни один вменяемый браузер не позволит такое сделать.

olegusmaximus

Для справки - ослик позволяет,
хотя конечно Вы правы, нормальный браузер не позволит

ChaseTM

Люди подскажите как посредством C# отправить запрос по URL и вытащить потом ответ?

Dasar

WebClient

ChaseTM

поподробней плз...

olegusmaximus

Пост запрос с телом request_mess

string resp;

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(request_url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Timeout = Timeout * 1000;

using (StreamWriter rw = new StreamWriter(req.GetRequestStream
{
rw.Write(request_mess);
}

using (HttpWebResponse res = (HttpWebResponse)req.GetResponse
{
using (StreamReader sred = new StreamReader(res.GetResponseStream
{
resp = sred.ReadToEnd;
}
}

Dasar

поподробней плз...
msdn открой, да посмотри методы WebClient-а

WebClient client = new WebClient;
Console.WriteLine(client.DownloadString("http://ya.ru";

ChaseTM

куда нести пиво?

kruzer25

Для справки - ослик позволяет,
Да ну? :smirk:
Оставить комментарий
Имя или ник:
Комментарий: