Страница 1 из 1

Coockie, хранение PHPSESSID во время работы приложения

Добавлено: 20 дек 2013, 13:48
sanu0074
Есть такой случай, есть скрипт на сервере, который добавляет коммент к посту, для того чтобы добавить этот коммент нужно ввести капчу.

Когда я в android-клиент загружаю сам пост и форму добавления коммента, картинку с капчей я загружаю в webView обчным способом loadUrl().

Таким образом я отправляю запрос на сервер чтобы получить оттуда какие либо данные:

Код: Выделить всё

public String exe(final String stringURL, final JSONObject jsonobj, final String parameters){ 
        
		HttpURLConnection connection;
	    OutputStreamWriter request = null;

        URL url = null;   
        String response = null;         
	              
	            try
	            {
	                url = new URL(stringURL);
	                connection = (HttpURLConnection) url.openConnection();
	                connection.setDoOutput(true);
	                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
	                connection.setRequestMethod("POST");    

	                request = new OutputStreamWriter(connection.getOutputStream());
	                request.write(parameters);
	                request.flush();
	                request.close();            
	                String line = "";               
	                InputStreamReader isr = new InputStreamReader(connection.getInputStream());
	                BufferedReader reader = new BufferedReader(isr);
	                StringBuilder sb = new StringBuilder();
	                while ((line = reader.readLine()) != null)
	                {
	                    sb.append(line + "\n");
	                }
	                // Response from server after login process will be stored in response variable.                
	                response = sb.toString();
	                // You can perform UI operations here
	                //Log.d("mylog", "postJSON 2: "+response);
	                
	                isr.close();
	                reader.close();
	                
	                
	                
	                
	            }
	            catch(IOException e)
	            {
	            	
	            }
				return response;
    } 
Так вот, как правильно делать запрос чтобы хранилась PHPSESSID, чтоб при каждом запросе, сервер знал что это все в пределах одной сессии? Сессия должна жить до тех пор пока приложение в загружено в памяти, если мы вышли из приложения и потом опять зашли - то это уже новая сессия. А так в данном случае получается что когда я загрузил форму с картинкой капчи - это одна сессия, а когда я отправляю коммент и код капчи - то это уже другая сессия, и сервер не пропустит этот запрос. Как решить эту проблему?

Re: Coockie, хранение PHPSESSID во время работы приложения

Добавлено: 20 дек 2013, 18:47
sanu0074
Вот я пытаюсь получить PHPSESSID при превом запуске:

Код: Выделить всё

			  InputStream is = null; 
		        // HTTP 
		        try {             
		            HttpClient httpclient = new DefaultHttpClient(); // for port 80 requests! 
		            HttpPost httppost = new HttpPost(stringURL);
		            HttpResponse response = httpclient.execute(httppost); 
		            HttpEntity entity = response.getEntity(); 
		            is = entity.getContent(); 
		        } catch(Exception e) { 
		            return; 
		        } 
		        // Read response to string 
		        try {             
		            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8); 
		            StringBuilder sb = new StringBuilder(); 
		            String line = null; 
		            while ((line = reader.readLine()) != null) { 
		                sb.append(line + "\n"); 
		            } 
		            is.close(); 
		            out = sb.toString();      
		        } catch(Exception e) { 
		            return; 
		        } 
			
	     
На сервере прописано в скрипте куда обращаюсь с клиента:

Код: Выделить всё

exit($_COOKIE['PHPSESSID']);
В логах в клиента, возвращает ошибку PHP - undefinet index PHPSESSID

А вот если я с браузера к этому скрипту обращаюсь - то в браузер выводится именно PHPSESSID как оно должно быть (кука)!

Почему так? Что нужно чтобы при запросе с андроида выводил куку, а не undefinet index PHPSESSID?