Задать вопрос
@emigrantdd

Как решить проблему с отправкой строки на сервер в android?

Доброго времени суток. Вроде бы все просто, есть строка json, которую нужно кинуть на сервер, при чем сервер не проверяет правильность построения строки или еще что-то, просто сервер и просто строка, но проблема в том что сервер почему-то всегда возвращает 0,значит что строку он не записал. Вот куда надо отправить post запрос
addef38885.nichost.ru/and.php?data=. Значит все данные которые после = на сервере уже будут идти в переменную. Мой запрос стоит в функции и выглядит так
static  String SendJsonViaPost(String url, String json) {
        String responseJson = "";
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(url);
        try {
            StringEntity stringEntity = new StringEntity(json);
            stringEntity.setContentType("application/json");
            post.setEntity(stringEntity);
            HttpResponse response = client.execute(post);
            BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line = "";
            while ((line = rd.readLine()) != null) {
                responseJson += line;
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

        return responseJson;}

и вот так вот я его вызываю:
SendJsonViaPost("http://addef38885.nichost.ru/and.php?data=","testing_file_1");

есть еще код PHP самого сервера.
<?php

$par = $_POST['data'];

if ( strlen($par) >=1 )
{
 $fp = fopen('data/'.date('Ymd_His').'.txt', "a"); // Открываем файл в режиме записи 

 $mytext = $par; // Исходная строка

 $test = fwrite($fp, $mytext); // Запись в файл

 if ($test) { echo '1'; } else { echo '0'; }

 fclose($fp); //Закрытие файла
}
else { echo '0'; }

?>
  • Вопрос задан
  • 2816 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
EnterSandman
@EnterSandman
Эникей
мы там создали вам пару файликов =)
почитайте чем отличается POST от GET
Ответ написан
AMar4enko
@AMar4enko
StringEntity stringEntity = new StringEntity(json);
stringEntity.setContentType("application/json");
post.setEntity(stringEntity);

заменить на
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("data", json));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

P.S. В Java и Android ничерта не смыслю.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы