2016-12-13 2 views
0

나는 안드로이드에서 새로운 서비스 응답을 얻고 있습니다. 그러나 서비스 URL은 browser.when에서 실행 중입니다. 앱 화면을 실행하면 화면이 공백으로 표시되고 서비스가 제공되지 않습니다. 친절하게 저를 도와주세요.OKHttp를 사용하여 나의 편안한 서비스 응답을 얻으십시오

내 조각 :

public class SpecificCountryScholorshipsFragment extends Fragment { 

OKHttpRequest okHttpRequest = new OKHttpRequest(); 
ArrayList<ScholorshipsModel> arrayList; 



ListView      list 
/***********************************************************************************/ 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    try { 

     String getResponse = okHttpRequest.doGetRequest("http://192.168.100.7/scholar/web/app.php/scholarship"); 
     if (getResponse != null) { 
      //Toast.makeText(getActivity(), getResponse, Toast.LENGTH_LONG).show(); 

      JSONArray jArray = new JSONArray(getResponse); 

      for (int i = 0; i < jArray.length(); i++) { 

       JSONObject jRealObject = jArray.getJSONObject(i); 
       ScholorshipsModel model = new ScholorshipsModel(); 
       model.setScholorship_name(jRealObject.getString("name")); 
       model.setScholorship_detail(jRealObject.getString("details")); 
       model.setScholorship_pic(jRealObject.getString("picture")); 

       arrayList.add(model); 
       setAdapterValue(); 

      } 


     } 

     View view = inflater.inflate(R.layout.scholorship_listing_main, container, false); 
     list = (ListView) view.findViewById(R.id.Scholorshiplist); 



     list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       Toast.makeText(getActivity(), "List is clicked ", Toast.LENGTH_LONG).show(); 

       Intent intent = new Intent(getActivity(), ScholorshipDetailActivity.class); 
       getActivity().startActivity(intent); 
      } 
     }); 

     return view; 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
return null; 
} 



    /***********************************************************************************/ 

private void setAdapterValue() { 
    ScholorshipAdapter adapter = new ScholorshipAdapter(getActivity(), R.layout.scholorship_listing, arrayList); 
    list.setAdapter(adapter); 
} 
} 

OKHttp 클래스 :

public class OKHttpRequest { 
OkHttpClient client = new OkHttpClient(); 

public static final MediaType JSON 
     = MediaType.parse("application/json; charset=utf-8"); 


public String doGetRequest(String url) throws IOException { 

    try { 
     Request request = new Request.Builder() 
       .url(url) 
       .build(); 

     Response response = client.newCall(request).execute(); 
     return response.body().string(); 

    } 
    catch (Exception e){ 
     e.printStackTrace(); 
    } 
    return null; 

} 



String doPostRequest(String url, String json) throws IOException { 
    RequestBody body = RequestBody.create(JSON, json); 
    Request request = new Request.Builder() 
      .url(url) 
      .post(body) 
      .build(); 
    Response response = client.newCall(request).execute(); 
    return response.body().string(); 
}} 
+0

PHP 서비스를 사용하는 경우 브라우저에서 응답을 받지만 모바일에서 API를 호출 할 때 진술을 반향하므로 서비스를 확인하십시오. –

+0

서비스가 제대로 작동하지만 Android에서 호출 할 때 null 응답을 제공합니다 @NoumanShah –

+0

응답 양식 서비스가 나타나지 않아서 오류가 서비스에 있어야한다고 생각합니다. –

답변

0

POSTMAN에 의해 먼저 API를 확인, 나는 당신이 Hader에서 몇 가지 매개 변수를 누락하거나 인해 응답이 그것에 몸에있을 수 있습니다 생각 서버에서 오지 않는다. 또한 클라이언트 - 서버 통신을 위해 volly을 추천합니다.

+0

POSTMAN에서 내 서비스가 정상적으로 작동 중입니다. @DynamicMind –

+0

volly를 사용하여 JSon/String 요청을 보내고, OnError 메서드를 사용하면 클라이언트 측과 서버 측 중 어디에 문제가 있는지 찾을 수 있습니다. – DynamicMind

0

또한 Rest-client (Chrome ans Firefox에 추가)를 사용할 수 있으며 모두 잘 작동하면 HttpsURLConnection으로 시도하면 도움이 될 수 있습니다.