2017-02-21 49 views
0

андроид

String url = "******"; 

// Request a string response from the provided URL. 
     StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         // Display the first 500 characters of the response string. 
         Log.d("DATA", response); 
        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       error.printStackTrace(); 
      } 
     }); 

код Symfony

/** 
    * Get ServiceProvider. 
    * 
    * @param ServiceProvider $venue 
    * 
    * @return ServiceProvider 
    * 
    * @Route\Get("/venue/{id}", options={"expose"=true}) 
    * 
    * @ParamConverter("venue", class="CoreBundle:ServiceProvider") 
    * 
    * @View(serializerGroups={"all"}) 
    * 
    * @ApiDoc(
    * resource=true, 
    *  description="Getting Venue information", 
    *  output="CoreBundle\ServiceProvider", 
    *  statusCodes={ 
    *   200="Returned when successful", 
    *   403="Returned when the Venue is not authorized to get Venue", 
    *   404={ 
    *    "Returned when the user is not found", 
    *    "Returned when something else is not found" 
    *   } 
    *  } 
    *) 
    */ 
    public function getVenue(ServiceProvider $venue) 
    { 
     return $this->get('service_provider_model')->getBy('id',$venue->getId()); 
    } 

, когда я попал в браузере StatusCode 200 и его рабочим же на почтальона и с прошивкой я могу читать json, но не от любого эмулятора или устройства Android. Я всегда получаю код состояния 500, поэтому я не могу прочитать данные. StringRequest или JSONRequest все не работает. кстати я пытался изменить код фреймворка дляFOSRESTBUNDLE возвращение 500 на андроид звонки

return new Response("hi"); 

, а затем я могу прочитать ответ.

LogCat

E/Volley: [323] BasicNetwork.performRequest: Unexpected response code 500 for 
W/System.err:  at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:163) 
W/System.err:  at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112) 

какие-либо предложения?

+0

получить более подробную информацию о журнале симфони на эту ошибку. tailf app/logs/[env] .log – zenith

+0

Я просмотрел все, что не было проблемой, я использую URLConnection, теперь объясню в ответе для справки –

ответ

0

Я не знаю о StringRequest и JSONRequest все еще глядя в них. Теперь я использую HttpURLConnection, где также столкнулся с той же проблемой, но после изменения заголовков и добавления правильного заголовка запроса он работал.

connection.setRequestProperty("Accept", "*/*"); 
connection.setReadTimeout(15*1000); 

полный код для справки

import android.os.AsyncTask; 
import android.util.Log; 

import com.google.gson.Gson; 

import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

/** 
* Created by yamennassif on 21/02/2017. 
*/ 

public class GetURL extends AsyncTask<String, Void, String> { 
    public static JSONObject VenueData; 
    @Override 
    protected String doInBackground(String... params) { 
     try { 
      String urlString = params[0]; 
      URL url = null; 
      BufferedReader reader = null; 
      StringBuilder stringBuilder; 
      try 
      { 
       url = new URL(urlString); 
       HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
       connection.setRequestMethod("GET"); 
       connection.setRequestProperty("Accept", "*/*"); 
       connection.setReadTimeout(15*1000); 
       connection.connect(); 

       // read the output from the server 
       reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
       stringBuilder = new StringBuilder(); 

       String line = null; 
       while ((line = reader.readLine()) != null) 
       { 
        stringBuilder.append(line + "\n"); 
       } 
       return stringBuilder.toString(); 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
       throw e; 
      } 
      finally 
      { 
       if (reader != null) 
       { 
        try 
        { 
         reader.close(); 
        } 
        catch (IOException ioe) 
        { 
         ioe.printStackTrace(); 
        } 
       } 
      } 
     } catch (Exception e) { 
      Log.d("AsyncTasks","MainActivity.GetUrl.doInBackground()"+e); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 

    } 

    @Override 
    protected void onPreExecute() { 
    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
    } 
}