Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Link в параметре запроса. 
:(
    Опции темы
Boing747
Дата 28.4.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 19.2.2007

Репутация: нет
Всего: 2



Есть метод сервиса, один из параметров которого -  строка, включающая ссылку. 
Типа 
HelloWorld(string hello,...)
и передается 
hello = "... http://google.com?user=qwer&password=qwer ... ";
Получается проблема, если ссылка имеет параметры из-за встречающихся в ссылке амперсантов. Вариант заменить амперсант на & не прокатывает. 
Вопрос, как корректно передать такую строку(не хотелось бы изменять параметры). Как грамотно это сделать?

Спасибо.


Это сообщение отредактировал(а) Boing747 - 28.4.2008, 18:38
PM MAIL   Вверх
Edd
Дата 28.4.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 23.3.2006

Репутация: нет
Всего: 1



Есле проблема в саммой ссылке, а не в строке, то проблема скорее всего в том, что после ".com" должен идти вроде "?".

hello = "... http://google.com?user=qwer&name=asdf&text=ghjkl ... ";


Это сообщение отредактировал(а) Edd - 28.4.2008, 17:20
PM MAIL   Вверх
Boing747
Дата 28.4.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 19.2.2007

Репутация: нет
Всего: 2



Упс, быстро писал, но это не меняет проблемы:

hello = "... http://google.com?user=qwer&pass=qwer ... ";


Все равно такая строчка прочитается при отправке до првого амперсанта.

Спасибо за внимательность.  smile  
PM MAIL   Вверх
Edd
Дата 28.4.2008, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 23.3.2006

Репутация: нет
Всего: 1



Код

......
string hello = "... http://google.com?user=qwer&pass=qwer ... ";
HelloWorld(hello);
.......
private static void HelloWorld(string hello) 
        {
            string zz = hello;    
            ....
        }

Всё работает тип-топ
Может выложи кусок кода, где обрабатывается строка hello
PM MAIL   Вверх
Любитель
Дата 28.4.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Boing747, а если тупо прогнать через Server.UrlEncode?


--------------------
PM MAIL ICQ Skype   Вверх
Boing747
Дата 28.4.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 19.2.2007

Репутация: нет
Всего: 2



Код:
Код


        [WebMethod]
        public IAsyncResult BeginSendTravelData(int userID, string xmlTravelData, AsyncCallback callback, object asyncState)
        {
            _googleController = new GoogleController(userID, xmlTravelData);
            _receiverDelegate =  new ReceiverDelegate(_googleController.Init);
            return _receiverDelegate.BeginInvoke(callback, asyncState);        
        }
        
 
        [WebMethod]
        public void EndSendTravelData(IAsyncResult asyncResult)
        {
            _receiverDelegate.EndInvoke(asyncResult);
            _googleController.Process();
        }



Добавлено через 4 минуты и 45 секунд
Любитель, сча попробую. Не баловался еще.

Это сообщение отредактировал(а) Boing747 - 28.4.2008, 17:43
PM MAIL   Вверх
Boing747
Дата 28.4.2008, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 19.2.2007

Репутация: нет
Всего: 2



Вобщем касяк у меня получился. Если вызывать сервис из браузера руками, то все работает, при этом внутрение амперсанты заменяются на %26
Я тогда немного не понимаю, почему & он все равно воспринимает как разделитель между двумя параметрами. Разве не для этого его и вводили?

Т е, ссылка типа 
http://.../Test.asmx/Hello?user=1&text=http://google.com?user=qwer&name=asdf

будет неправильно работать, 
где хочу передать в метод Hello следующие параметры:
user со значением 1
text со значением http://google.com?user=qwer&name=asdf

А метод получит значение
text - http://google.com?user=qwer

В чем я не прав?



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.