![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 93
|
Как можно передать сообщение, содержащее русские символы и пробелы в параметр запроса? Есть для этого во Flash какие-нибудь функции или какие сторонние библиотеки?
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
encodeURI
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 93
|
Допустим у меня есть переменная userText = "абракадабра". Если пользоваться encodeURI, то на стене появляется запись со знаками процента и т.д., т.е. явно не то, что нужно, а если без нее, то что-то типа абракадабра. Может я не так как-то encodeURI использую? Я кодирую userText в подписи и в URLVariables.
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Вот кусок рабочего кода
/**************************************************************************/ /* Публикация записи на стену */ /**************************************************************************/ public function writeMessageToWall(requestData){ var signatureForMD5:String = wrapper.application.parameters.viewer_id + "api_id=" + wrapper.application.parameters.api_id + "hash=" + requestData.hash + "message=" + requestData.messageText + "method=wall.savePost" + "photo=" + requestData.photo + "photo_id=" + requestData.photoID + "server=" + requestData.server + "test_mode=" + testMode + "v=2.0" + "wall_id=" + requestData.userID + GlobalParameters.appCode; var signatureMD5:String = convertorMD5.encrypt(signatureForMD5); var requestString:String = wrapper.application.parameters.api_url + "?api_id=" + wrapper.application.parameters.api_id + "&hash=" + requestData.hash + "&message=" + encodeURI(requestData.messageText) + "&method=wall.savePost" + "&photo=" + requestData.photo + "&photo_id=" + requestData.photoID + "&server=" + requestData.server + "&sig=" + signatureMD5 + "&test_mode="+testMode + "&v=2.0" + "&wall_id=" + requestData.userID ; connectToURL(requestString,"writeMessageToWall"); } |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 93
|
У вас в сигнатуре requestData.messageText не кодируется, а в параметрах запроса кодируется. У меня в таком случае запрос не выполняется даже. Мне нужно и там и там кодировать. Я, правда, использую URLVariables:
var sig = MD5.hash(viewer_id+"api_id="+api_id+"hash="+hash+"message="+msg+"method=wall.savePostphoto="+photo+"post_id="+post_id+"server="+server+"v="+v+"wall_id="+String(wall_id)+secret); var variables:URLVariables = new URLVariables(); variables.api_id = api_id; variables.v = v; variables.wall_id = wall_id; variables.server = server; variables.photo = photo; variables.post_id = post_id; variables.hash = hash; variables.message = msg; variables.method = "wall.savePost"; variables.sig = sig; sendAndLoadData(variables, onComplete); ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Нет, ну почему никто не догадывался сделать функцию сортировки полей по алфавиту и автоматическому вычислению сигнатуры?
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 93
|
Цитата:
Ну а по вопросу? Что можно сделать? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не знаю, я передаю как есть и всё работает. Т. е. я ничего специально не делал для того, чтобы это работало.
|
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Мне в свое время было лень. Казалось что руками быстрее перечислить параметры запроса.
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 93
|
Самое интересное -- в окне подтверждения публикации русский текст правильно отображается, а на самой стене совсем не то
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:48. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|