2015-07-29 2 views
0

Я пытаюсь сделать простую функцию входа. Вход будет выполнен приложением, и информация поступает на WebService (в C#).C# чтение информации с Android

Мое приложение отправляет информацию на сервер через HttpPost. Но я не могу получить и вернуть эту информацию на стороне веб-службы

Чтобы сделать запрос (андроид сторона) я использовал:

// Building Parameters 
List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("username", user.getText().toString())); 
params.add(new BasicNameValuePair("password", pass.getText().toString())); 

DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpPost httpPost = new HttpPost(url); 
httpPost.setEntity(new UrlEncodedFormEntity(params)); 

HttpResponse httpResponse = httpClient.execute(httpPost); 
HttpEntity httpEntity = httpResponse.getEntity(); 
is = httpEntity.getContent(); 

На стороне WebService, я был попытаться использовать Сериализовать метод, но он не работает

Ps .: Для тестирования я попытался запустить другой WebService (этот, построенный с помощью PHP), и отлично работает.

Любые идеи, как сделать эту работу?

[Редактировать]

Это сторона веб-сервис:

[HttpPost] 
public string LogarAplicativo() 
{ 
    //Request.InputStream.Seek(0, SeekOrigin.Begin); 
    string jsonData = new StreamReader(Request.InputStream).ReadToEnd(); 
    dynamic data = JObject.Parse(jsonData); 

    //DB validation's 

    var json = ""; 
    var serializer = new JavaScriptSerializer(); 
    json = serializer.Serialize(new { success = "0", message = "Test message!" }); 
    return json; 
} 
+0

Показать код веб-службы и объяснить, что означает «не работает». Вы пытались вызвать веб-сервис из браузера? – nasch

+0

Эй, @nasch, я обновляю сообщение с помощью веб-службы. Не работает, я имею в виду, что функция «LogarAplicativo» не может прочитать информацию, переданную httppost (со стороны приложения). – GuiPab

+0

. Я использовал скрипач для проверки в браузере и ответ json был правильным. – GuiPab

ответ

1

При отправке информации с UrlEncodedFormEntity, это будет выглядеть как the contents of an HTTP form:

param1=value1&param2=value2 

Это а не данные JSON, поэтому ваш код сериализации не работает, потому что это совершенно другая структура. Данные формы анализа требуют различных методов, таких как HttpUtility.ParseQueryString.

+0

Большое спасибо за свет Glorfindel, когда я прихожу домой, я проверю этот HttpUtility.ParseQueryString – GuiPab

+0

HttpUtility.ParseQueryString отлично работает, теперь я понимаю свою ошибку, спасибо много снова – GuiPab

Смежные вопросы