Форум программистов, компьютерный форум 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. Эмулятор...
Программирование Android No such file or directory Добрый день. У меня при загрузки фотографии выводится как бы сохранен но в обменнике нету ее. Вот результаты Лога 09-04 12:29:03.028 5898-6266/com.project_down D/loging: params.length =2... http://www.cyberforum.ru/android-dev/thread1802609.html
Автоматическая замена символов Программирование Android
Есть EditText в котором вводятся цифры и буквы. Необходимо программно найти в нем русские буквы и заменить их на английские
Программирование Android MockWebServer не работает как надо
Юзаю Square MockWebServer для юнит тестирования Ретрофит клиента. Делаю всё как описано в их примере на гитхабе, но сервер принимает запросы только если перед server.shutdown() добавить задержку...
Программирование Android Не открывает старые проекты http://www.cyberforum.ru/android-dev/thread1802497.html
Обновил android studio до 2.1, и наверно зря. Старый проект не получается открыть. Создаю эмулятор, запускаю, но окнo debugged не появляется, и в самом эмуляторе естественно не отображается мое...
Программирование 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? скачал от сюда... подробнее

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

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

04.09.2016, 15:53. Просмотров 124. Ответов 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-приложении так же прописаны манифесты для разрешения работы с интернетом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru