簡體   English   中英

無法通過 Volley 連接到本地主機

[英]Can not connect to localhost by Volley

我正在使用Volley:1.1.1在我的 android 應用程序中連接到本地主機

我的代碼:

public static final String API_URL = "http://127.0.0.1:5365/api/Account/LoginUser?username=A_easy&password=123";

JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, API_URL, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.i("APIRes", "response : " + response);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.i("APIRes", "error : " + error.getMessage());
            }
        });
        RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
        queue.add(request);

我得到的錯誤error:null

Logcat 正在顯示這個

I/Choreographer: Skipped 170 frames!  The application may be doing too much work on its main thread.
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
I/APIRes: error : null

- 它適用於郵遞員

- 我嘗試過GET方法,但結果是一樣的

- 我試過10.0.2.2和我的IP 地址但結果是一樣的

0.0.0.0運行您的服務。 它將使服務器在同一網絡中可用。 因此,如果您計算機的 IP 是192.168.XY那么您可以通過以下方式訪問該服務:

http://192.168.X.Y:5365/api/Account/LoginUser?username=A_easy&password=123

形成更多信息我引用自SO Thread

127.0.0.1 通常是分配給“環回”或僅本地接口的 IP 地址。 這是一個“假”網絡適配器,只能在同一主機內進行通信。 當您希望具有網絡功能的應用程序僅為同一主機上的客戶端提供服務時,通常會使用它。 在 127.0.0.1 上偵聽連接的進程將僅接收該套接字上的本地連接。

“localhost”通常是 127.0.0.1 IP 地址的主機名。 它通常設置在 /etc/hosts(或 %WINDIR% 下某處名為“hosts”的 Windows 等效項中)。 您可以像使用任何其他主機名一樣使用它 - 嘗試“ping localhost”以查看它如何解析為 127.0.0.1。

0.0.0.0 有幾個不同的含義,但在這種情況下,當服務器被告知要偵聽 0.0.0.0 時,這意味着“偵聽每個可用的網絡接口”。 從服務器進程的角度來看,IP 地址為 127.0.0.1 的環回適配器看起來就像機器上的任何其他網絡適配器,因此被告知偵聽 0.0.0.0 的服務器也將接受該接口上的連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM