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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
lord_commander
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 137
#1

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

04.09.2016, 15:53. Просмотров 118. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2016, 15:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не удается передать строку из Android-клиента в WCF-службу (Программирование Android):

Как передать файл из клиента в сервер с помощью WCF - C# WCF
Знатоки, пожалуйста, скажите как передать файл из клиента в сервер с помощью WCF?

Как передать файл от клиента на сервер посредством WCF? - C# WCF
Гуру, помогите советом, пожалуйста. Для передачи файла могу ли я использовать ChannelFactory? Или как можно еще передать файл на сервер...

Закинуть WCF службу на сервер - C# WCF
Не пойму как правильно закинуть WCF службу на сервер. Код главной формы: using System; using System.Collections.Generic; ...

Как хостить WCF службу в сети? - C# WCF
Всем привет. Очередной глупый вопрос. Можно ли хостить WCF службу в сети. Пишут что нужен удаленный сервер (что логично конечно же) с...

.NET 4.x Как обновить ссылку на WCF-службу? - C# WCF
здравствуйте, только-только начал разбираться с WCF. Протестил по статье: https://msdn.microsoft.com/ru-ru/library/bb386386.aspx ...

Как настраивать WCF-службу на виндовом сервисе? - C# WCF
Прошу просветить меня по теории. Как я понял, wcf сервис можно хостить используя IIS или с помощью службы windows. В последнем случае, мы...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2016, 15:53
Привет! Вот еще темы с ответами:

Не получается залить WCF-службу на IIS хост - C# WCF
Доброго времени суток. После долгих безрезультатных поисков по просторам Интернета решения моей проблемы, решил обратится к вам. Создав...

Сайт на MVC: как задействовать службу WCF - C# WCF
Здравствуйте. Пишу сайт на MVC и нужно задействовать службу WCF но ума не приложу как это сделать. xhr.open('GET',...

Максимальный размер оперативки выделяемый под службу WCF - C# WCF
Создать double в обычной проге или в потоке вполне реально, а вот в службе с этим проблемы. Есть идеи как это можно обойти?

Размещение WCF службы в Windows (В клиенте не получается добавить ссылку на эту службу) - C# WCF
Здравствуйте, товарищи! В общем. Пытаюсь написать клиент-серверное приложение на WCF. (Пример брал из Троелсна) Я написал: 1....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru