+ Ответить в теме
Показано с 1 по 10 из 10

Тема: ПОмогите с ASP C#

  1. #1
    Новичок loginpogin кто это?
    Регистрация
    05.03.2008
    Возраст
    37
    Сообщений
    7
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).

    По умолчанию ПОмогите с ASP C#

    Доброго всем времени суток!)
    Если кому не сложно ,то помогите решить проблему:
    есть код который посылает запрос,параметром запроса передается xml... предварительно в xml кодируется с помощью urlencode, так как в xml присутствует кирилица... но в ответ приходит файл,в кото кирилица не читается((( типа было "<street>Горького, </street>",а стало "<street>Ai?ueiai, </street>"
    код программы такой:
    String zapros = @"<?xml version=""1.0"" encoding=""utf-8""?><product><prequest><req><AccountReq><acctNum> 0</acctNum></AccountReq><AddressReq><street>Горького, </street>";
    Encoding unicode = Encoding.Default;
    byte[] zaprosBytes = unicode.GetBytes(zapros);
    string asciiString = HttpUtility.UrlEncode(zaprosBytes);

    HttpWebRequest req = (HttpWebRequest)
    WebRequest.Create(@"http://icrs.demo.nbki.ru/products/B2BRequestServlet?xml=" + asciiString);
    HttpWebResponse resp = (HttpWebResponse)
    req.GetResponse();
    Stream s = resp.GetResponseStream();
    int bt;
    TextArea1.Value = "";
    string otvet = "";
    while (true)
    {
    bt = s.ReadByte();
    if (bt == -1) break;
    otvet =String.Concat(otvet, new String((char)bt,1));

    }
    Encoding ascii = Encoding.GetEncoding(1251);
    byte[] unicodeBytes = unicode.GetBytes(otvet);

    byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
    char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
    ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
    string otvetString = new string(asciiChars);

    в конце пробывал перекодировать ответ, но это не дало результатов....помогите плз,заранее спасибо

  2. #2
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    а сам скрипт в UTF8 сохранен? // была подобная проблема изза того, что скрипт был сохранен в вин кодировке, но работал непосредственно с юникодом.. соответственно имели "битый" юникод

    ЗЫ пользуемся тегом [code]
    Последний раз редактировалось nons; 05.03.2008 в 20:31.

  3. #3
    Новичок loginpogin кто это?
    Регистрация
    05.03.2008
    Возраст
    37
    Сообщений
    7
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).

    По умолчанию

    в каком смысле?

  4. #4
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    скрипт, как и любой текстовый файл, имеет свою кодировку (File encoding).. в какой кодировке ты сохраняешь свой файл?

  5. #5
    Новичок loginpogin кто это?
    Регистрация
    05.03.2008
    Возраст
    37
    Сообщений
    7
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).

    По умолчанию

    я не сохраняю в файл,а вывожу на web-форму , кодировка формы utf-8

    Добавлено через 1 час 21 минуту
    или вот еще рабочий пример для кнопки


    protectedvoid Button1_Click(object sender, EventArgs e)
    {Encoding unicode = Encoding.Default;byte[] zaprosBytes = unicode.GetBytes(zapros);
    string asciiString = HttpUtility.UrlEncode(zaprosBytes);

    HttpWebRequest req = (HttpWebRequest)

    WebRequest.Create(@"http://www.adresnoe.info/search.php?PHONE=" + TextBox1.Text);req.Headers.Add("Accept-Encoding", "windows - 1251");
    HttpWebResponse resp = (HttpWebResponse)
    req.GetResponse();
    resp.Headers.Add("Accept-Encoding", "windows - 1251");
    Stream s = resp.GetResponseStream();
    int bt;
    string otvet = "";
    while (true)
    {
    bt = s.ReadByte();
    if (bt == -1) break;
    otvet =String.Concat(otvet, newString((char)bt,1));

    }
    Encoding ascii = Encoding.GetEncoding(1251);
    byte[] unicodeBytes = unicode.GetBytes(otvet);
    byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
    char[] asciiChars = newchar[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
    ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
    string otvetString = newstring(asciiChars);string path = @"D:\1.htm";
    if (!File.Exists(path))
    {
    using (StreamWriter sw = File.CreateText(path))
    {
    sw.WriteLine(otvetString);
    }
    }
    using (StreamWriter sw = File.AppendText(path))
    {
    sw.WriteLine(otvetString);
    }




    TextArea1.Value = zapros;
    Textarea2.Value = asciiString;
    Textarea3.Value = otvetString;
    }
    }


    в результате в файл записывается битая кирилица
    Последний раз редактировалось loginpogin; 05.03.2008 в 23:13. Причина: Добавлено сообщение

  6. #6
    Ветеран nobody Набираю обороты nobody Набираю обороты nobody Набираю обороты nobody Набираю обороты nobody Набираю обороты nobody Набираю обороты nobody Набираю обороты Аватар для nobody
    Регистрация
    03.06.2005
    Адрес
    Lost in Space...
    Возраст
    41
    Сообщений
    1,126
    Поблагодарил(а)
    19
    Получено благодарностей: 161 (сообщений: 101).

    По умолчанию

    Для начала неплохо было бы выяснить, в какой кодировке приходит ответ.

  7. #7
    Наш Чел Dron247 кто это? Аватар для Dron247
    Регистрация
    18.07.2007
    Адрес
    Братск
    Возраст
    35
    Сообщений
    298
    Поблагодарил(а)
    29
    Получено благодарностей: 37 (сообщений: 32).

    По умолчанию

    Цитата Сообщение от nobody Посмотреть сообщение
    Для начала неплохо было бы выяснить, в какой кодировке приходит ответ.
    Кстати правильная мысль, у меня такое с гуглом (делал браузер со встроенным гшугл поиском) было, Потести с запросами на инглише если все норм то точно с кодировкой косяк))

  8. #8
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    Цитата Сообщение от Dron247 Посмотреть сообщение
    Кстати правильная мысль, у меня такое с гуглом (делал браузер со встроенным гшугл поиском) было, Потести с запросами на инглише если все норм то точно с кодировкой косяк))
    собственно и так понятно, что с кодировкой косяк ((:

    ЗЫ loginpogin, кинь в архиве сам скрипт

  9. #9
    Новичок loginpogin кто это?
    Регистрация
    05.03.2008
    Возраст
    37
    Сообщений
    7
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).

    По умолчанию

    спасибо всем ,Я разобрался более или менее,но возникло еще 2 вопросика:


    1) мне надо обратиться методом GET через форму примерно так:

    //используем метод GET
    HttpWebRequest httpGET = (HttpWebRequest)WebRequest.Create("http://valaam-info.ru/fns/fns.php?num=1037739347030&action=Искать");
    HttpWebResponse response = (HttpWebResponse)httpGET.GetResponse();
    Encoding encoding = Encoding.Default;
    StreamReader sReader = newStreamReader(response.GetResponseStream(), encoding);
    String resp = sReader.ReadToEnd();
    response.Close();
    TextArea1.Value = resp;

    но то ли там защита какая то,то ли еще что-то ,но результата нет,хотя пример рабочий .....


    2) как делать POST запросы только на HTTPS ?


    Добавлено через 2 часа 5 минут
    результата нет,это значит,что он не выполняет запрос,а просто возвращает страницу ввода данных
    Последний раз редактировалось loginpogin; 14.03.2008 в 20:56. Причина: Добавлено сообщение

  10. #10
    Мастер Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Papa-Bear Закрылки на взлет Аватар для Papa-Bear
    Регистрация
    26.09.2005
    Возраст
    41
    Сообщений
    888
    Поблагодарил(а)
    146
    Получено благодарностей: 505 (сообщений: 270).

    По умолчанию

    Если не секрет, что пишешь?
    Сам давно пишу на ASP.NET, но так активно Responce\Request не использовал.

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Похожие темы

  1. Помогите найти собаку
    от инна в разделе Животные и растения
    Ответов: 3
    Последнее сообщение: 29.01.2008, 13:41
  2. помогите. Как настроить StrongDC++???
    от Козырь в разделе Сеть
    Ответов: 3
    Последнее сообщение: 18.12.2007, 19:12
  3. Помогите найти друга!!!
    от anarhistka в разделе Ищу тебя
    Ответов: 1
    Последнее сообщение: 13.12.2007, 11:50
  4. помогите с работой!
    от Canton в разделе Работа, найм, образование
    Ответов: 1
    Последнее сообщение: 05.11.2007, 23:42
  5. Помогите опознать произведение
    от sda в разделе Фэнтези
    Ответов: 4
    Последнее сообщение: 02.11.2007, 17:34

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru
Администрация сайта не выражает согласия
с высказыванием участников форума и не несет
ответственности за их содержание.

Копирование любого материала возможно только
при наличии ссылки на сайт.