Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2018, 13:50
__SDP__
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 14 años, 4 meses
Puntos: 9
consumir servicio rest

Hola,

necesito poder consumir un servicio web desde android, tengo uno de prueba hecho en un simple archivo java y funciona pero desde android no funciona le puse permisos de internet etc.. ahora explico.

Este es el archivo java que funciona, si lo ejecuto va a buscar
Código Java:
Ver original
  1. package validadouble;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.BufferedReader;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.InputStreamReader;
  8. import java.io.Reader;
  9. import java.net.HttpURLConnection;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12.  
  13. public class Main {
  14.  
  15.     public static void main(String[] args) throws MalformedURLException, IOException {
  16.  
  17.        
  18.         URL url = new URL("http://10.201.1.114:8000/api/profile");
  19.         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
  20.        
  21.         String basicAuth = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZkYjIzYWUyZDNkN2JkMTlmZjBmMTA1NmM5Mzg5NWE3MzQ4N2EzNzdkNDNmYjdhNWQ4Yjg2YTYzYTcwNjY4YWM5MWM2OGNjMzhhNjlhOTY0In0.eyJhdWQiOiIzIiwianRpIjoiZmRiMjNhZTJkM2Q3YmQxOWZmMGYxMDU2YzkzODk1YTczNDg3YTM3N2Q0M2ZiN2E1ZDhiODZhNjNhNzA2NjhhYzkxYzY4Y2MzOGE2OWE5NjQiLCJpYXQiOjE1NDIwMzY2MTEsIm5iZiI6MTU0MjAzNjYxMSwiZXhwIjoxNTczNTcyNjExLCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.iQoKJu6bzzqbfXI8YvCsObFaA7MsufHtaRCK3JS3arVq2HWvDP268QxG_NzCACVxnuuvYkHXbtClRzkqYfvcWP_SUhd2jTWUjek5OPueUg7XEu-fXyEbu3LXfK4jL2u2w1w_s8a4MfEJIbEJuxBefMa9u8LkK3HuSBPoLzsxYnhONtXFm_qrAsUKnUQgmYq0cKm-4prO5PzNF1FACgIhfmwdOeuNi66ICajjI9eUxF17nT4Rbn-s4_xt4B81sQ_Mxsxejafz2NS4a1zuNDUzkvpWKb34EhKW5r9Pk4SApYlzfkgarQKqUNKw_UnkZPAOf_oVmboGKi1dtsxX3-Oic16hAckR9s_h5P9A6E1xRa8BoIKd8FZhQtSy4vCcsSbyk3jxua_NR-AnydHRgbM_WujDWLM_eItZrxrembXySKsb4dSCMm6pOqvM6i6JNyIUh5LWrP0M1UrvzfeqWSgF4DFV8GhHbuQ6HOGKlC1lLEEYcPgAiWFRW9d-603Lhc8xp96GA7UrdvbqMtb6dUFHbv5Uhy_Ac0O_-3lzu9X-8Kcqo8sICsTuaiwCQ0274dVTkjzLNYTa5TSsLkp-VnWCjelDq-uE9Y10_JbUhuihZZ-oKnQJZ5bIxJPSZ5sj1BzPCMO031SwAGI7A1eXduD-nLZqSAhkiZQS6FWH6WWCtYE";
  22.  
  23.         urlConnection.setRequestProperty ("Authorization", basicAuth);
  24.         urlConnection.setRequestMethod("POST");
  25.         urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  26.         urlConnection.setUseCaches(false);
  27.         urlConnection.setDoInput(true);
  28.         urlConnection.setDoOutput(true);
  29.        
  30.        
  31.         try {
  32.         InputStream in = new BufferedInputStream(urlConnection.getInputStream());
  33.  
  34.                 BufferedReader reader = new BufferedReader(new InputStreamReader(in));
  35.                 String line="";                
  36.                 while((line = reader.readLine()) != null){
  37.                     System.out.println(line);
  38.                 }
  39.        
  40.         } finally {
  41.         urlConnection.disconnect();
  42.         }
  43.        
  44.     }
  45.  
  46.    
  47. }


Lo que no funciona es lo que tengo en android, pondre el archivo MainActivity.java, ClassConnection.java y el AndroidManifest.xml



MainActivity.java
Código Java:
Ver original
  1. package com.example.practice.getpost;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6.  
  7. import org.json.JSONArray;
  8. import org.json.JSONException;
  9. import org.json.JSONObject;
  10.  
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. import java.util.concurrent.ExecutionException;
  14.  
  15. public class MainActivity extends AppCompatActivity {
  16.  
  17.     TextView txtnombre;
  18.  
  19.     @Override
  20.     protected void onCreate(Bundle savedInstanceState) {
  21.         super.onCreate(savedInstanceState);
  22.         setContentView(R.layout.activity_main);
  23.  
  24.         txtnombre  = (TextView) findViewById(R.id.txtnombre);
  25.  
  26.         ClassConnection connection = new ClassConnection();
  27.         try {
  28.             String response = connection.execute("http://10.201.1.114:8000/api/profile").get();
  29.  
  30.             JSONArray jsonArray = new JSONArray(response);
  31.             //JSONObject jsonObject = jsonArray.getJSONObject(2);
  32.  
  33.             //String name = jsonObject.getString("name");
  34.             //String name = jsonArray.getJSONObject(2).toString();
  35.  
  36.             //String nombres = "";
  37.  
  38.             //ArrayList<String> listado = new ArrayList<>();
  39.             //for (int i= 0; i < jsonArray.length(); i++){
  40.  
  41.                 //JSONObject json = jsonArray.getJSONObject(i);
  42.                 //listado.add(json.getString("name"));
  43.                 //nombres += json;
  44.             //}
  45.  
  46.             txtnombre.setText(jsonArray.toString());
  47.  
  48.         } catch (ExecutionException e) {
  49.             e.printStackTrace();
  50.         } catch (InterruptedException e) {
  51.             e.printStackTrace();
  52.         } catch (JSONException e) {
  53.             e.printStackTrace();
  54.         }
  55.  
  56.  
  57.     }
  58. }

ClassConnection.java
Código Java:
Ver original
  1. package com.example.practice.getpost;
  2.  
  3. import android.os.AsyncTask;
  4.  
  5. import java.io.BufferedInputStream;
  6. import java.io.BufferedReader;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.InputStreamReader;
  10. import java.net.HttpURLConnection;
  11. import java.net.MalformedURLException;
  12. import java.net.URL;
  13.  
  14. public class ClassConnection extends AsyncTask<String, String, String> {
  15.     @Override
  16.     protected String doInBackground(String... strings) {
  17.         HttpURLConnection httpURLConnection=null;
  18.         URL url = null;
  19.         try {
  20.             url = new URL(strings[0]);
  21.         } catch (MalformedURLException e) {
  22.             e.printStackTrace();
  23.         }
  24.  
  25.         try {
  26.             httpURLConnection = (HttpURLConnection) url.openConnection();
  27.             httpURLConnection.connect();
  28.  
  29.             String basicAuth = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZkYjIzYWUyZDNkN2JkMTlmZjBmMTA1NmM5Mzg5NWE3MzQ4N2EzNzdkNDNmYjdhNWQ4Yjg2YTYzYTcwNjY4YWM5MWM2OGNjMzhhNjlhOTY0In0.eyJhdWQiOiIzIiwianRpIjoiZmRiMjNhZTJkM2Q3YmQxOWZmMGYxMDU2YzkzODk1YTczNDg3YTM3N2Q0M2ZiN2E1ZDhiODZhNjNhNzA2NjhhYzkxYzY4Y2MzOGE2OWE5NjQiLCJpYXQiOjE1NDIwMzY2MTEsIm5iZiI6MTU0MjAzNjYxMSwiZXhwIjoxNTczNTcyNjExLCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.iQoKJu6bzzqbfXI8YvCsObFaA7MsufHtaRCK3JS3arVq2HWvDP268QxG_NzCACVxnuuvYkHXbtClRzkqYfvcWP_SUhd2jTWUjek5OPueUg7XEu-fXyEbu3LXfK4jL2u2w1w_s8a4MfEJIbEJuxBefMa9u8LkK3HuSBPoLzsxYnhONtXFm_qrAsUKnUQgmYq0cKm-4prO5PzNF1FACgIhfmwdOeuNi66ICajjI9eUxF17nT4Rbn-s4_xt4B81sQ_Mxsxejafz2NS4a1zuNDUzkvpWKb34EhKW5r9Pk4SApYlzfkgarQKqUNKw_UnkZPAOf_oVmboGKi1dtsxX3-Oic16hAckR9s_h5P9A6E1xRa8BoIKd8FZhQtSy4vCcsSbyk3jxua_NR-AnydHRgbM_WujDWLM_eItZrxrembXySKsb4dSCMm6pOqvM6i6JNyIUh5LWrP0M1UrvzfeqWSgF4DFV8GhHbuQ6HOGKlC1lLEEYcPgAiWFRW9d-603Lhc8xp96GA7UrdvbqMtb6dUFHbv5Uhy_Ac0O_-3lzu9X-8Kcqo8sICsTuaiwCQ0274dVTkjzLNYTa5TSsLkp-VnWCjelDq-uE9Y10_JbUhuihZZ-oKnQJZ5bIxJPSZ5sj1BzPCMO031SwAGI7A1eXduD-nLZqSAhkiZQS6FWH6WWCtYE";
  30.  
  31.             httpURLConnection.setRequestProperty ("Authorization", basicAuth);
  32.             httpURLConnection.setRequestMethod("POST");
  33.             httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  34.             httpURLConnection.setUseCaches(false);
  35.             httpURLConnection.setDoInput(true);
  36.             httpURLConnection.setDoOutput(true);
  37.  
  38.             //int code = httpURLConnection.getResponseCode();
  39.             //if(code == HttpURLConnection.HTTP_OK){
  40.                 InputStream in = new BufferedInputStream(httpURLConnection.getInputStream());
  41.  
  42.                 BufferedReader reader = new BufferedReader(new InputStreamReader(in));
  43.                 String line="";
  44.                 StringBuffer buffer = new StringBuffer();
  45.                 while((line = reader.readLine()) != null){
  46.                     buffer.append(line);
  47.                 }
  48.  
  49.                 return buffer.toString();
  50.  
  51.             //}
  52.         } catch (IOException e) {
  53.             e.printStackTrace();
  54.         }
  55.         return null;
  56.     }
  57. }

AndroidManifest.xml
Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.    xmlns:tools="http://schemas.android.com/tools"
  4.    package="com.example.practice.getpost">
  5.  
  6.     <application
  7.        android:allowBackup="true"
  8.        android:icon="@mipmap/ic_launcher"
  9.        android:label="@string/app_name"
  10.        android:roundIcon="@mipmap/ic_launcher_round"
  11.        android:supportsRtl="true"
  12.        android:theme="@style/AppTheme">
  13.         <activity android:name=".MainActivity">
  14.             <intent-filter>
  15.                 <action android:name="android.intent.action.MAIN" />
  16.  
  17.                 <category android:name="android.intent.category.LAUNCHER" />
  18.             </intent-filter>
  19.         </activity>
  20.     </application>
  21.  
  22.     <uses-permission android:name="android.permission.ACCOUNT_MANAGER"
  23.        tools:ignore="ProtectedPermissions" />
  24.     <uses-permission android:name="android.permission.INTERNET" />
  25.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  26. </manifest>

ojala me puedan ayudar,

bye

Última edición por __SDP__; 21/11/2018 a las 13:55