Идентификация Android с использованием JSON

У меня есть сервер Python / Django, который является API для веб-службы.
Я создаю приложение для Android, которое будет взаимодействовать с API и проверять подлинность пользователей, а также позволять им делать все тяги / нажатия с сервера.

Моя проблема связана с конкретным сообщением с сервером. В настоящее время я использую свою сеть WiFi и запускаю сервер так, чтобы python manage.py runserver 192.168.1.3:8000 чтобы он был доступен любому тестовому устройству в моей локальной сети.

API написан таким образом, чтобы он возвращал сообщения о состоянии http с каждым ответом, чтобы я мог сообщить об успешности или неудаче запроса перед разбором ответа JSON.

На моей стороне Android я использовал HttpURLConnection потому что у него есть метод getHeaderField(null) который я использую, чтобы выбрать сообщение статуса http из ответа. Я получаю сообщение о статусе 200 [успех], когда я 'ping' мой сервер – это своего рода доказательство концепции.

Моя реальная проблема – аутентификация. Мой API требует, чтобы я отправил ему JSON с данными, и он возвращает ответ JSON [с сообщением о статусе http в голове].
Я не могу понять, как это сделать. Действие JSON, которое я видел вокруг межсетевых экранов, просто выбирает или публикует.
Мне интересно, как я могу отправить сообщение и получить ответ с сервера.

Дополнительная информация
– Сервер поддерживает HEAD, GET и OPTIONS.
– Предполагая, что серверный сервер – 192.168.1.3, логин / регистр пользователя будет в 192.168.1.3/user, события будут в 192.168.1.3/events и т. Д.
– Это было самое близкое, что я добрался до решения, но не совсем.

CODE из AsyncTask

 protected JSONObject doInBackground(String... params) { publishProgress(true); /*Create a new HttpClient and Post Header*/ JSONObject result=null; HttpClient httpclient = new DefaultHttpClient(); try { URL url = new URL(cons.PROTOCOL,cons.SERVER,cons.PORT,"/user"); HttpPost httppost = new HttpPost(url.toURI()); HttpResponse response =null; /*Add your data*/ JSONObject j1=new JSONObject(); JSONObject json=new JSONObject(); j1.put("username", "test"); j1.put("email","test@test.com"); j1.put("password","password"); j1.put("first_name","John"); j1.put("last_name","Doe"); json.put("user",j1); json.put("mobile_number","256774622240"); StringEntity se = new StringEntity( json.toString()); se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); httppost.setEntity(se); /*Execute HTTP Post Request*/ response= httpclient.execute(httppost); Log.i("jazz","It's ALIVE!!!!!"); Log.i("jazz",response.getStatusLine().toString()); } catch (ClientProtocolException e) { /* TODO Auto-generated catch block*/ } catch (IOException e) { // TODO Auto-generated catch block } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } 

2 Solutions collect form web for “Идентификация Android с использованием JSON”

Если вы хорошо строите свой HttpPostRequest, и вы только хотите знать, как подключить JSON, здесь вы можете решить это:

  StringEntity formEntity = new StringEntity(yourJsonObject.toString()); yourPostRequest.setEntity(formEntity); 

Надеюсь, это поможет!

PS: Кроме того, позвольте мне порекомендовать вам использование этого компонента:

https://github.com/matessoftwaresolutions/AndroidHttpRestService

Я использовал его в Android-приложении, которое подключается к API-интерфейсу python и упрощает HTTP-запрос для вашего Android-клиента.

Хорошо, поэтому я отвечаю на свой вопрос: D

Проблема заключалась в переменной path в URL string .
Это формат одного из конструкторов URL, основанных на этом документе .
URL(String protocol, String host, int port, String file)

Поскольку я отправляю JSON на путь /user , это тот, который я вставляю в конструктор в качестве directory.
Итак, мой URL-адрес был сформирован следующим образом:
URL url= new URL("http",cons.SERVER,cons.PORT,"/user/");

Моя ошибка в начале заключалась в использовании /user вместо /user/ но кроме этого структура URL и соединения все в порядке.

  • отправка данных как объекта JSON из Python в Javascript с Jinja
  • Словарь Python изменяется при использовании промежуточной переменной
  • Как преобразовать строку json в словарь и сохранить порядок в ключах?
  • Сериализация JSON в Spidermonkey
  • Сохранение данных о песнях, исполнителях и альбомах в App Engine
  • Недопустимый управляющий символ с Python json.loads
  • Файл ODS для JSON
  • Как превратить запрос MongoDB в JSON?
  • Отправка запроса JSON с помощью Python
  • Загрузка файла с несколькими строками JSON в Pandas Pandas
  • Как декодировать JSON в Javascript?
  • Python - лучший язык программирования в мире.