Как мы отправляем данные методом GET? - PullRequest
7 голосов
/ 04 декабря 2009

Я создаю HTTPS-соединение и задаю свойство запроса как GET:

_httpsConnection = (HttpsConnection) Connector.open(URL, Connector.READ_WRITE);
_httpsConnection.setRequestMethod(HttpsConnection.GET);

Но как мне отправить параметры GET? Должен ли я установить свойство запроса следующим образом:

_httpsConnection.setRequestProperty("method", "session.getToken");
_httpsConnection.setRequestProperty("developerKey", "value");
_httpsConnection.setRequestProperty("clientID", "value");

или мне нужно записать в выходной поток соединения?

или мне нужно отправить параметр / значения, добавив его в URL?

Ответы [ 3 ]

8 голосов
/ 04 декабря 2009

Вызов Connection.setRequestProperty() установит заголовок запроса, что, вероятно, не то, что вы хотите сделать в этом случае (если вы спросите меня, я думаю, что назвать его setRequestHeader было бы лучшим выбором). Некоторые прокси могут удалять или переписывать имена нестандартных заголовков, поэтому лучше придерживаться соглашения о передаче данных в GET URL через параметры URL.

Лучший способ сделать это на BlackBerry - использовать класс URLEncodedPostData для правильного кодирования параметров URL:

URLEncodedPostData data = new URLEncodedPostData("UTF-8", false);
data.append("method", "session.getToken");
data.append("developerKey", "value");
data.append("clientID", "value");
url = url + "?" + data.toString();
6 голосов
/ 04 декабря 2009

HTTP GET отправка параметров данных в виде пар ключ / значение, закодированных в URL, например:

GET /example.html                      // without parameters
GET /example.html?Id=         1        // with one basic parameter
GET /example.html?Id=1&Name=John%20Doo // with two parameters, second encoded

Примечание: следуйте правилам для символьных разделителей:

? - split URL in two pieces: adddress to left and paremeters to right
& - must be used to separate on parameter from another

Вы должны знать свою функцию кодирования собственной строки для вашей платформы. Javascript использует escape, C # использует HttpUtility.UrlEncode

2 голосов
/ 04 декабря 2009

Да, заголовки и свойства - это почти все, что вы можете отправить в GET. Кроме того, вы ограничены определенным количеством символов, которое зависит от браузера - кажется, я вспоминаю о 1024 или 2000, как правило.

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