2015-12-06 59 views
1

我試圖在使用Volley的Android上使用託管在IIS中的IIS上的WCF RESTful服務。我有下面的代碼:Android Volley在本地主機上使用WCF服務獲取錯誤響應

private static final String URL_BASE = "http://10.0.3.2/SimpleRESTServiceCRUD/BookService.svc"; 
private static final String URL_JSON = "/Books"; 

List<Book> items; 
JsonObjectRequest jsArrayRequest; 
private RequestQueue requestQueue; 

public BookAdapter(Context context) 
{ 
    super(context,0); 

    requestQueue = Volley.newRequestQueue(context); 

    JsonObjectRequest jsArrayRequest = new JsonObjectRequest(
      Request.Method.GET, 
      URL_BASE + URL_JSON, 
      null, 
      new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 

        items = parseJson(response); 
        notifyDataSetChanged(); 
       } 
      }, 
      new Response.ErrorListener() { 

       @Override 
       public void onErrorResponse(VolleyError error) { 

        Log.d(TAG, "Error on JSON response: " + error.getMessage()); 

       } 
      } 
    ); 
} 

但當我總是調試得到new Response.ErrorListener()但從未進入:

@Override 
public void onErrorResponse(VolleyError error) { 

    Log.d(TAG, "Error on JSON response: " + error.getMessage()); 

} 

所以我不知道發生了什麼事!我使用Genymotion模擬器,所以我想這尤里斯:

http://192.168.56.1/SimpleRESTServiceCRUD/BookService.svc 
http://10.0.3.2/SimpleRESTServiceCRUD/BookService.svc 

我竟然用手機瀏覽器,看看它的工作,而我居然能得到的服務。

如果有人能給我一隻手我會很感激。 謝謝!

回答

0

我覺得你的要求沒有被髮送到WCF服務,因爲你沒有以下行:

requestQueue.add(jsArrayRequest); 

所以,更新您的代碼如下所示:

public BookAdapter(Context context) 
{ 
    super(context,0); 

    requestQueue = Volley.newRequestQueue(context); 

    JsonObjectRequest jsArrayRequest = new JsonObjectRequest(
      Request.Method.GET, 
      URL_BASE + URL_JSON, 
      null, 
      new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 

        items = parseJson(response); 
        notifyDataSetChanged(); 
       } 
      }, 
      new Response.ErrorListener() { 

       @Override 
       public void onErrorResponse(VolleyError error) { 

        Log.d(TAG, "Error on JSON response: " + error.getMessage()); 

       } 
      } 
    ); 

    requestQueue.add(jsArrayRequest); 
} 

希望這可以幫助!

+1

謝謝@BNK !!!!這是問題所在。根據你的回答,我修改了我的代碼之後,出現了錯誤307,但我更改了IIS中WCF應用程序的位置,並修復了它。謝謝! – josher932

相關問題