Форум программистов, компьютерный форум CyberForum.ru

Не удается передать строку из Android-клиента в WCF-службу - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Настройка сети в VS Android Emulator http://www.cyberforum.ru/android-dev/thread1802656.html
Здравствуйте. Как настроить подключение к интернету в эмуляторе? Моя сеть: 1. Коммутатор, раздающий IP-адреса 192.168.1.2 - 192.168.1.255 маской 255.255.255.0 2. Сетевая карта с DHCP. Эмулятор создал 2 подключения в Hyper-V: одно внешнее, связанное с физическим адаптером, ему присваивается IP при старте эмулятора (IP 169.254.138.177) и одно внутреннее со статическим IP эмулятора (IP...
Android No such file or directory Добрый день. У меня при загрузки фотографии выводится как бы сохранен но в обменнике нету ее. Вот результаты Лога 09-04 12:29:03.028 5898-6266/com.project_down D/loging: params.length =2 09-04 12:31:40.556 8161-8971/com.project_down D/loging: Error AProtocol not found: 09-04 12:31:46.747 8161-9007/com.project_down D/loging: params.length =2 http://www.cyberforum.ru/android-dev/thread1802609.html
Автоматическая замена символов Android
Есть EditText в котором вводятся цифры и буквы. Необходимо программно найти в нем русские буквы и заменить их на английские
Android MockWebServer не работает как надо
Юзаю Square MockWebServer для юнит тестирования Ретрофит клиента. Делаю всё как описано в их примере на гитхабе, но сервер принимает запросы только если перед server.shutdown() добавить задержку миллисекунд 100 и более (Thread.Sleep(100)). У кого-то была похожая проблема? Как победили?
Android Не открывает старые проекты http://www.cyberforum.ru/android-dev/thread1802497.html
Обновил android studio до 2.1, и наверно зря. Старый проект не получается открыть. Создаю эмулятор, запускаю, но окнo debugged не появляется, и в самом эмуляторе естественно не отображается мое приложение. Есть такая надпись.. Migrate Project to Gradle? This project does not use the Gradle build system. We recommend that you migrate to using the Gradle build system. Что нужно сделать? Я...
Android Установка среды разработки Eclipse не устанавливаеться скачал инсталер Эклайпс и при его запуске выдает the required 64-bit Java 1.7.0 virtual machine could not be found Do you want to browse your system for it? скачал от сюда http://www.eclipse.org/downloads/ подробнее

Показать сообщение отдельно
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 137

Не удается передать строку из Android-клиента в WCF-службу - Android

04.09.2016, 15:53. Просмотров 104. Ответов 0
Метки (Все метки)

Мне необходимо передать данные(строка) из Android-клиента, в WCF-службу. Но у меня не получается это сделать - клиент обращается к методу службы, но строка не передается, она все время пуста. Доступ к файлу для записи есть.

У меня есть WCF-служба, которая обеспечивает обмен данными с Android-приложением. Я разместил службу в IIS, и работаю с эмулятором Android в Android Studio. Размещенная WCF-служба размещена была корректна, по крайней мере передает данные в Android-приложение она без проблем, осталось только обратно их передавать.

В Android-приложении передача осуществляется следующим образом:
Кликните здесь для просмотра всего текста
Java
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
private class ConWCF extends AsyncTask<Void, Void, String>{
 
protected String doInBackground(Void... params){ 
    InputStream inputStream = null;
    String result = "";
    try {
 
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://192.168.1.94:8080/Test.svc/Login");
        String json = "";
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("firstname", "Alex");
            jsonObject.put("secondName", "Petrov");
            jsonObject.put("street", "Arbat");
        } catch (JSONException e) {
            e.printStackTrace();
        }
 
        json = jsonObject.toString();
        StringEntity se = new StringEntity(json);
        httpPost.setEntity(se);
        httpPost.setHeader("Accept", "application/json");
        httpPost.setHeader("Content-type", "application/json");
        HttpResponse httpResponse = httpclient.execute(httpPost);
        inputStream = httpResponse.getEntity().getContent();
        if(inputStream != null)
            result = convertInputStreamToString(inputStream);
        else
            result = "Did not work!";
    } catch (Exception e) {
        Log.d("InputStream", e.getLocalizedMessage());
    }
    return result;
}
}

Строка, которую необходимо передавать не пустая, в ней содержится текст. Проверял под отладкой код - вызывается метод из службы для записи, но сама строка не передается

Принятие json-строки в службе осуществляется с помощью следующего кода:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "Login",
        BodyStyle = WebMessageBodyStyle.Wrapped,
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json
      )]
    void Login(String str);
 
public void Login(String str){
        var filePath = ConfigurationManager.AppSettings["myFile.txt"];
        StreamWriter file;
        file = File.AppendText(filePath + "/myFile.txt");
        if (str == null)
        {
            file.WriteLine("пусто");
        }
        else
        {
            file.WriteLine(str);
        }
        file.WriteLine(str);
        file.Close();
    }

В Web.config я также прописал путь к файлу, в который следует осуществлять запись.

Кликните здесь для просмотра всего текста
C#
1
2
3
4
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
<!--Путькфайлу-->
<add key="myFile.txt" value="C:\Papka" />


Когда проверял код записи в файл без Android-приложения, используя WPF-клиент - запись проходит корректно. В Android-приложении так же прописаны манифесты для разрешения работы с интернетом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru