Проблемы с HTTPclient и куки - PullRequest
       19

Проблемы с HTTPclient и куки

1 голос
/ 20 марта 2012

В настоящее время я работаю над мобильным приложением, которое будет взаимодействовать с сервером RESTfull по протоколу HTTP. Для этого я сделал рабочий код и установил связь.

Чтобы сервер идентифицировал пользователей, я хотел использовать куки (какой-то сеанс куки). Итак, я начал с двух следующих вспомогательных методов для создания HttpClient и контекста (включая мой cookie).

// Gets a standard client - set to HTTP1.1
private HttpClient getClient() {
    HttpParams params = new BasicHttpParams();
    params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
    return new DefaultHttpClient(params);
}

// Gets the context with cookies to be used. This is to make each user unique
private HttpContext getHttpContext(String server) {
    CookieStore cookieStore = new BasicCookieStore();
    BasicClientCookie cookie = new BasicClientCookie("X-ANDROID-USER", "some name");
    cookie.setDomain(server);
    cookie.setPath("/");
    cookie.setVersion(1);

    cookieStore.addCookie(cookie);
    HttpContext localContext = new BasicHttpContext();
    localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
    return localContext;
}

Затем я подключаюсь к серверу, используя следующее (функция чтения). Это, в основном, требует генерации Client и Conext двумя последними вспомогательными методами и выполнения обычного GET-запроса.
// Соединяется с оставшимся сервером и возвращает возвращаемое значение (запрос на получение) </p> <pre> private String restfullRead(URI uri, String server) { // Sets up the different objects needed to read a HttpRequest HttpClient client = this.getClient(); HttpGet request = new HttpGet(); request.setURI(uri); HttpContext context = this.getHttpContext(server); // Connects to the server and reads response try { HttpResponse response = client.execute(request, context); reader.close(); } catch (Exception e) { return ""; }</pre> <p>When I run this to my server I get the following request.<br/> GET /info/1 HTTP/1.1<br/> Host: 192.168.0.191:8080<br/> Connection: Keep-Alive

Как видите, это не относится к файлам cookie. Вот почему я удивляюсь, почему файл cookie, созданный в getHttpContext, не отправляется в запросе?

1 Ответ

0 голосов
/ 20 марта 2012

Этот ответ поможет вам:

Как сделать http-запрос с использованием файлов cookie на Android?

// РЕДАКТИРОВАТЬ

1.) Ваше приложение для Android отправляет уникальный NFC-тег на сервер.

2.) Сервер создает новый уникальный токен и создает выпуск между токеном и меткой NFC

3.) Каждый раз, когда ваше приложение отправляет запрос, отправляйте также уникальный NFC-тег.

4.) Сервер проверит NFC-Tag и выполнит поиск токена, и теперь ваше устройство идентифицировано

Отправка пользовательского заголовка:

HttpGet get = new HttpGet(getURL);
get.addHeader("NFC", "YOUR NFC-TAG");
get.addHeader("Some more header", "more infos");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...