Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/33: Рейтинг темы: голосов - 33, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 3

Отправка POST запроса серверу

16.04.2013, 15:55. Показов 6046. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пишу приложение для Android, которое получает данные о местонахождении и отправляет их на Web-сервер.

Данные о местонахождении получаю нормально. А вот при отправке данных на сервер возникает проблема: на сервер ничего не приходит.

Подскажите в чём проблема!

Заранее спасибо! )

Функция передачи - public static void sendData.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
 package com.arish;
 
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyStore;
import java.security.PublicKey;
 
import javax.net.ssl.HttpsURLConnection;
 
import org.apache.http.HttpConnection;
 
import android.app.Activity;
import android.app.ProgressDialog;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Window;
import android.widget.TextView;
 
 
public class GPSTestAction extends Activity implements LocationListener{
    
    private LocationManager myManager;
    
    public static    String res;
 
     static String ouTxt=" Server is unavailable.\n\n Check access to the Internet.";
     static String errorTxt="\nProgram error !\nRestart the program please.\n";
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        
        
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        sendData("http://my-gps-monitoring.ru/upload.php", "OK!");        
        
        //Связываем менеджер и сервис
        myManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        //Назначаем слушателя
        myManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
        
    }
 
    public void onLocationChanged(Location location) {
    
    // TODO Auto-generated method stub
        TextView tx = (TextView) findViewById(R.id.tv1);
                
          ProgressDialog progressDialog;
          Handler progressHandler;
          String resultStr = new String(""); 
          
          sendData("http://www.my-gps-monitoring.ru/upload.php", "OK!");
              
         
          tx.setText("88Широта: "    + location.getLatitude()  + "\nДолгота: " + location.getLongitude() + 
                   "\nСкорость: " + location.getSpeed() + "\n" + "\n" + ouTxt );
  }
    
    public static void sendData (final String serverAddress, final String myString)
    {
        Runnable r = new Runnable() {
            public void run() {
                
                      StringBuffer requestBody = new StringBuffer();
                      
 
 
                      try {
                          URLConnection connection = null;
                          URL url = new URL(serverAddress);
                          connection = url.openConnection();
                          HttpURLConnection httpConnection = (HttpURLConnection) connection;
                          httpConnection.setRequestMethod("POST");
                          httpConnection.setUseCaches(false);
                          httpConnection.setDoOutput(true);
                          httpConnection.setDoInput(true);
                          httpConnection.setRequestProperty("Host", "igb.agri.gov.il");
                          httpConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2");
                          httpConnection.setRequestProperty("Accept", "text/html, application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                        
 
                          //httpConnection.setRequestProperty("Content-Length", String.valueOf(myString)); //              
                          httpConnection.setRequestProperty("Accept-Language","he, utf-8;");//
                          httpConnection.setRequestProperty("Accept-Charset","utf-8"); //
                          
                          httpConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");
                          httpConnection.setRequestProperty("DNT", "1");
                          httpConnection.setRequestProperty("Referer", "http://igb.agri.gov.il/");
                          httpConnection.setRequestProperty("Host", "igb.agri.gov.il");
                          httpConnection.setRequestProperty("Connection", "keep-alive");
                          httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                          requestBody.append( myString ); //добавление моих данных к запросу Post
                          // соединение
                          httpConnection.connect();
                          // отправка запроса
                          DataOutputStream dataOS = new DataOutputStream( httpConnection.getOutputStream());
                          dataOS.writeUTF(myString.toString()); 
                   
                          dataOS.writeUTF(myString.toString());
                          dataOS.flush();
                          dataOS.close();
                  
                  
                          // получение ответа сервера
                          int responseCode = httpConnection.getResponseCode();
                          if (responseCode == 200) { // если все прошло нормально(200), получаем результат
                              InputStream in = httpConnection.getInputStream();
                              InputStreamReader isr = new InputStreamReader(in, "UTF-8");
                              StringBuffer data = new StringBuffer();
                              int c;
                              while ((c = isr.read()) != -1) {  data.append((char) c);  }
                              
                              
                                                          ouTxt = new String(data.toString());
                          }  else  {                        ouTxt = "Server is unavailable.\nPlease try again."; }
                      } catch (MalformedURLException e) { ouTxt = errorTxt+"MalformedURLException:" + e.getMessage(); }
                        catch (IOException e) {              ouTxt = errorTxt+"IOException:" + e.getMessage(); Log.e("ERROR", e.getMessage());
                      } catch (Exception e) {             ouTxt = errorTxt+"Exception:" + e.getMessage();  }
                      requestBody = null;
                      System.gc();
                  };
            }; 
            new Thread(r).start();
 
    }
 
}

Вот код сервера

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
$filename = "datafile.txt";
 
 
$f = fopen($filename,"a");
printf($f,"Data received @ ".date(DATE_RFC822));
printf($f,"\n");
printf($f,'First Name:['.$_POST['MyString'].']');
print('First Name:['.$_POST['MyString'].']');
 
printf($f,"\n");
 
fclose($f);
print "SUCCESS";
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2013, 15:55
Ответы с готовыми решениями:

Отправка POST запроса
Здраствуйте, нужно на сайт отправить пост запрос з логином і паролем, потом сайт оддаст строку, ее нужно вивсти в текствів, у меня есть код...

Отправка POST запроса
Добрый день! столкнулся с проблемой, не могу отправить пост запрос, сваливаюсь на OutputStream os = con.getOutputStream(); в query...

Отправка POST запроса
Здравствуйте! Решил попробовать написать приложение на Android. Задачу поставил такую, что надо отправить с android-а на сервер post...

7
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.04.2013, 16:31
может где-то падает в try?
0
0x5B4C322291BD52AE
 Аватар для c4sp3r
96 / 96 / 0
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 17:47
Flash_8, используй отладчик и смотри что отсылается и что сервер отвечает.

Добавлено через 4 минуты
и выведи исключения в логи так удобнее будет отлаживать
0
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 3
16.04.2013, 18:20  [ТС]
Через отладчик смотрел - отсылается всё без ошибок. Но почему-то на сервер ничего не приходит.
0
0x5B4C322291BD52AE
 Аватар для c4sp3r
96 / 96 / 0
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 18:39
Flash_8, а ответ сервера нормальный приходит?
0
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 3
16.04.2013, 19:09  [ТС]
С сервера тоже ничего не приходит...
0
0x5B4C322291BD52AE
 Аватар для c4sp3r
96 / 96 / 0
Регистрация: 04.03.2013
Сообщений: 295
16.04.2013, 19:28
Flash_8, если браузером зайти:

запрос/ответ

GET http://www.my-gps-monitoring.ru/upload.php HTTP/1.1
Host: ...
User-Agent: Mozilla/5.0 ...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: ...
Cookie: p=09ccb12be971347c784ed8ea600c7c38
DNT: 1
Connection: keep-alive

HTTP/1.1 200 OK
Date: Tue, 16 Apr 2013 15:12:35 GMT
Server: nginx
Content-Type: text/html
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.13
Cache-Control: no-cache, must-revalidate
Expires: Thu, 26 Jul 1990 05:00:00 GMT
Content-Encoding: gzip
Content-Length: 958
Keep-Alive: timeout=2, max=98
Connection: Keep-Alive

HTML5
1
2
3
4
<html><body><p>Resource id #2Resource id #2Resource id #2Resource id #2SUCCESS
...
</body>
</html>


Подобный ответ должен быть от сервера после POST запроса хотя бы HTTP/1.1 200 OK если нет значит данные не дошли до сервера и возможно даже соединения не было. Т.е. какой-то ответ должен быть если соединения до сервера происходит нормально.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.04.2013, 01:19
а через HttpClient не пробовали?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
 
try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("id", "12345"));
    nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);
 
} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
} catch (IOException e) {
    // TODO Auto-generated catch block
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2013, 01:19
Помогаю со студенческими работами здесь

Не работает отправка POST запроса
try{ HttpClient httpclient = new DefaultHttpClient(); //YOUR PHP SCRIPT ADDRESS HttpPost httppost...

Отправка POST-запроса на сервер
Задача - отправить на сервер запрос (либо параметры для запроса на сервере) и получить выборку. Однако с отправкой возникли проблемы. ...

Отправка Post запроса в Android предложении
Есть определенная php страница надо отправить на нее Post запрос из Android приложения Например на такую страниц...

Оборвать POST-запрос к серверу
Создаю в новом потоке POST запрос к серверу и отправляю на него данные. Делаю проверку, что если по какой-то случайности данные не будут...

Post запрос к серверу и получение ответа
Здравствуйте, мне нужно, чтобы программа отправляла запрос серверу, получала данные в виде строки и присваивала его TextView. Несколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru